All of lore.kernel.org
 help / color / mirror / Atom feed
From: wmb@firmworks.com (Mitch Bradley)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: vexpress: initial device tree support
Date: Wed, 11 Jan 2012 13:20:03 -1000	[thread overview]
Message-ID: <4F0E1923.4090703@firmworks.com> (raw)
In-Reply-To: <4F0DEE4F.3080103@freescale.com>

On 1/11/2012 10:17 AM, Timur Tabi wrote:
> Mitch Bradley wrote:
>
>> I think that would not be a good design.  Presence and location of EDID
>> data is not something that a generic I2C driver should know.  It's the
>> video controller that knows that EDID exists, where it is located
>> (device ID 0x50 and addresses within that device), and what it means.
>
> But the video driver does not know what I2C *bus* it's on.  I have been unable to come up with a way to obtain the proper i2c_adapter object to use when looking for EDID data.

You make device nodes for each of the i2c adapters (possibly with a GPIO 
I2C mux node underneath the EDID one), then you point to the correct 
adapter (or mux) node with a phandle-valued property in the video node.

Of course, you need the deferral patch cited in another message.

>
>>>   That won't work if I have multiple video controllers, since I won't know which EDID data goes with which video controller.  I tried adding a call to i2c_add_driver() in my framebuffer driver, but the I2C probe function was called *after* the framebuffer's probe function, so that doesn't help me.
>>
>> Then there needs to be some sort of ordering or dependency to ensure
>> that the I2C driver is activated before the framebuffer driver tries to
>> use it.
>
> I don't know how to do that, either.
>
>> Either way, you need platform-dependent functions to do the switching,
>> and you need to select the appropriate channel.  Personally, I don't see
>> the advantage of using the mux device in this case.  It's just adding
>> complexity with no payback.
>
> I'm always in favor of doing things the simpler way.
>
>

WARNING: multiple messages have this Message-ID (diff)
From: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
To: Timur Tabi <timur-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: "Paweł Moll" <Pawel.Moll-5wv7dgnIgG8@public.gmane.org>,
	"patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	"Jamie Lokier" <jamie-yetKDKU6eevNLxjTenLetw@public.gmane.org>,
	"Rob Herring"
	<rob.herring-CfjtxxwdHycX+EX/Zwu52A@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH] ARM: vexpress: initial device tree support
Date: Wed, 11 Jan 2012 13:20:03 -1000	[thread overview]
Message-ID: <4F0E1923.4090703@firmworks.com> (raw)
In-Reply-To: <4F0DEE4F.3080103-KZfg59tc24xl57MIdRCFDg@public.gmane.org>

On 1/11/2012 10:17 AM, Timur Tabi wrote:
> Mitch Bradley wrote:
>
>> I think that would not be a good design.  Presence and location of EDID
>> data is not something that a generic I2C driver should know.  It's the
>> video controller that knows that EDID exists, where it is located
>> (device ID 0x50 and addresses within that device), and what it means.
>
> But the video driver does not know what I2C *bus* it's on.  I have been unable to come up with a way to obtain the proper i2c_adapter object to use when looking for EDID data.

You make device nodes for each of the i2c adapters (possibly with a GPIO 
I2C mux node underneath the EDID one), then you point to the correct 
adapter (or mux) node with a phandle-valued property in the video node.

Of course, you need the deferral patch cited in another message.

>
>>>   That won't work if I have multiple video controllers, since I won't know which EDID data goes with which video controller.  I tried adding a call to i2c_add_driver() in my framebuffer driver, but the I2C probe function was called *after* the framebuffer's probe function, so that doesn't help me.
>>
>> Then there needs to be some sort of ordering or dependency to ensure
>> that the I2C driver is activated before the framebuffer driver tries to
>> use it.
>
> I don't know how to do that, either.
>
>> Either way, you need platform-dependent functions to do the switching,
>> and you need to select the appropriate channel.  Personally, I don't see
>> the advantage of using the mux device in this case.  It's just adding
>> complexity with no payback.
>
> I'm always in favor of doing things the simpler way.
>
>

  reply	other threads:[~2012-01-11 23:20 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-21  9:19 [PATCH] ARM: vexpress: initial device tree support Dave Martin
2011-09-21  9:19 ` Dave Martin
2011-09-21 13:24 ` Rob Herring
2011-09-21 13:24   ` Rob Herring
2011-09-21 14:24   ` Dave Martin
2011-09-21 14:24     ` Dave Martin
2011-09-21 14:33     ` Pawel Moll
2011-09-21 14:33       ` Pawel Moll
2011-09-21 15:49       ` Dave Martin
2011-09-21 15:49         ` Dave Martin
2011-09-21 14:57   ` Grant Likely
2011-09-21 14:57     ` Grant Likely
2011-09-21 16:01     ` Pawel Moll
2011-09-21 16:01       ` Pawel Moll
2011-09-21 16:17       ` Dave Martin
2011-09-21 16:17         ` Dave Martin
2011-09-21 16:28         ` Pawel Moll
2011-09-21 16:28           ` Pawel Moll
2011-09-21 16:37     ` Rob Herring
2011-09-21 16:37       ` Rob Herring
2011-09-21 17:15       ` Dave Martin
2011-09-21 17:15         ` Dave Martin
2011-09-21 17:47         ` Mitch Bradley
2011-09-21 17:47           ` Mitch Bradley
2011-09-22 12:19           ` Dave Martin
2011-09-22 12:19             ` Dave Martin
2012-01-09 23:26 ` Tabi Timur-B04825
2012-01-09 23:26   ` Tabi Timur-B04825
2012-01-10  0:42   ` Mitch Bradley
2012-01-10  0:42     ` Mitch Bradley
2012-01-10  2:24     ` Tabi Timur-B04825
2012-01-10  2:24       ` Tabi Timur-B04825
2012-01-10 12:22     ` Jamie Lokier
2012-01-10 12:22       ` Jamie Lokier
2012-01-10 21:58       ` Timur Tabi
2012-01-10 21:58         ` Timur Tabi
2012-01-10 22:35         ` Mitch Bradley
2012-01-10 22:35           ` Mitch Bradley
2012-01-10 23:55           ` Stephen Warren
2012-01-10 23:55             ` Stephen Warren
2012-01-11  0:02             ` Timur Tabi
2012-01-11  0:02               ` Timur Tabi
2012-01-11  0:28           ` Timur Tabi
2012-01-11  0:28             ` Timur Tabi
2012-01-11  6:43             ` Mitch Bradley
2012-01-11  6:43               ` Mitch Bradley
2012-01-11 20:17               ` Timur Tabi
2012-01-11 20:17                 ` Timur Tabi
2012-01-11 23:20                 ` Mitch Bradley [this message]
2012-01-11 23:20                   ` Mitch Bradley
2012-01-11 23:32                   ` Timur Tabi
2012-01-11 23:32                     ` Timur Tabi
2012-01-11 20:29               ` Stephen Warren
2012-01-11 20:29                 ` Stephen Warren
2012-01-11 20:32                 ` Timur Tabi
2012-01-11 20:32                   ` Timur Tabi
2012-01-11 20:36                   ` Stephen Warren
2012-01-11 20:36                     ` Stephen Warren
2012-01-11 21:37                     ` Timur Tabi
2012-01-11 21:37                       ` Timur Tabi
2012-01-11 21:57                       ` Stephen Warren
2012-01-11 21:57                         ` Stephen Warren
2012-01-12 12:24                     ` Jamie Lokier
2012-01-12 12:24                       ` Jamie Lokier
2012-01-12 16:49                       ` Stephen Warren
2012-01-12 16:49                         ` Stephen Warren
2012-01-11 23:16                 ` Mitch Bradley
2012-01-11 23:16                   ` Mitch Bradley
2012-01-12  0:15                   ` Stephen Warren
2012-01-12  0:15                     ` Stephen Warren
2012-01-12  0:38                     ` Mitch Bradley
2012-01-12  0:38                       ` Mitch Bradley
2012-01-12  0:47                       ` Mitch Bradley
2012-01-12  0:47                         ` Mitch Bradley
2012-01-12 16:45                       ` Stephen Warren
2012-01-12 16:45                         ` Stephen Warren
2012-01-12 12:09                     ` Jamie Lokier
2012-01-12 12:09                       ` Jamie Lokier
2012-01-12 16:52                       ` Stephen Warren
2012-01-12 16:52                         ` Stephen Warren
2012-01-10 11:04   ` Dave Martin
2012-01-10 11:04     ` Dave Martin

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=4F0E1923.4090703@firmworks.com \
    --to=wmb@firmworks.com \
    --cc=linux-arm-kernel@lists.infradead.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 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.