From: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
STEricsson_nomadik_linux-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org,
linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 3/3] i2c: nomadik: Add Device Tree support to the Nomadik I2C driver
Date: Mon, 3 Sep 2012 14:28:50 +0100 [thread overview]
Message-ID: <20120903132844.GD31163@gmail.com> (raw)
In-Reply-To: <CACRpkdZvWkH2gQQuNvCkNuB-faT8qHAjyiULSqPKrn+FCktvLg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Mon, Sep 03, 2012 at 03:19:13PM +0200, Linus Walleij wrote:
> On Mon, Sep 3, 2012 at 2:34 PM, Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
>
> > When booting DT booting take a different path and no platform data
> > is passed. We can't boot DT AND register devices with platform data
> > or else we will double probe every device. The only way to pass
> > pdata when booting with DT is with AUX_DATA() and that's a hack to
> > get around things we don't have support for yet. Up until now that
> > has been DMA bindings, clock and pinctrl names and call-backs.
>
> So if we pass some augmented platform data using AUX_DATA()
> that appears as pdata in this case, and gets discarded.
>
> Thus we cannot use AUX_DATA() to override a broken, as in
> "the interrupt number is wrong" device tree.
No, you cannot to that. You'd have to fix it in DT (which is easier).
> > If DT is corrupt or missing the kernel will boot using platform
> > data, but np will always be NULL, so we don't have the problem you
> > were alluding to above.
>
> That was not the problem I had in mind.
>
> I had a valid, but incorrect device tree in mind. I.e the device
> is there, but with wrong base address, or wrong IRQ number.
>
> If pdata takes precedence, we can use AUX_DATA() to
> override such errors from the platform, since drivers/of/platform.c
> helpfully pokes in the auxdata as the platform data.
Yes, that's what happens.
> I thought this was one of the reasons why auxdata exist
> at all.
I don't think so. I've been told that AUXDATA is just a hack. My
aim is to rid the boardfile of all AUXDATA entries.
> Or is the proper solution to runtime-patch the device tree
> per se in such cases? How is that actually done then?
No, you can't do that either. DT is only read once at boot-time.
The correct solution would be to fix the broken DT.
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/3] i2c: nomadik: Add Device Tree support to the Nomadik I2C driver
Date: Mon, 3 Sep 2012 14:28:50 +0100 [thread overview]
Message-ID: <20120903132844.GD31163@gmail.com> (raw)
In-Reply-To: <CACRpkdZvWkH2gQQuNvCkNuB-faT8qHAjyiULSqPKrn+FCktvLg@mail.gmail.com>
On Mon, Sep 03, 2012 at 03:19:13PM +0200, Linus Walleij wrote:
> On Mon, Sep 3, 2012 at 2:34 PM, Lee Jones <lee.jones@linaro.org> wrote:
>
> > When booting DT booting take a different path and no platform data
> > is passed. We can't boot DT AND register devices with platform data
> > or else we will double probe every device. The only way to pass
> > pdata when booting with DT is with AUX_DATA() and that's a hack to
> > get around things we don't have support for yet. Up until now that
> > has been DMA bindings, clock and pinctrl names and call-backs.
>
> So if we pass some augmented platform data using AUX_DATA()
> that appears as pdata in this case, and gets discarded.
>
> Thus we cannot use AUX_DATA() to override a broken, as in
> "the interrupt number is wrong" device tree.
No, you cannot to that. You'd have to fix it in DT (which is easier).
> > If DT is corrupt or missing the kernel will boot using platform
> > data, but np will always be NULL, so we don't have the problem you
> > were alluding to above.
>
> That was not the problem I had in mind.
>
> I had a valid, but incorrect device tree in mind. I.e the device
> is there, but with wrong base address, or wrong IRQ number.
>
> If pdata takes precedence, we can use AUX_DATA() to
> override such errors from the platform, since drivers/of/platform.c
> helpfully pokes in the auxdata as the platform data.
Yes, that's what happens.
> I thought this was one of the reasons why auxdata exist
> at all.
I don't think so. I've been told that AUXDATA is just a hack. My
aim is to rid the boardfile of all AUXDATA entries.
> Or is the proper solution to runtime-patch the device tree
> per se in such cases? How is that actually done then?
No, you can't do that either. DT is only read once at boot-time.
The correct solution would be to fix the broken DT.
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <rob.herring@calxeda.com>,
devicetree-discuss@lists.ozlabs.org,
Stephen Warren <swarren@nvidia.com>,
Wolfram Sang <w.sang@pengutronix.de>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
STEricsson_nomadik_linux@list.st.com,
linus.walleij@stericsson.com, arnd@arndb.de,
linux-i2c@vger.kernel.org
Subject: Re: [PATCH 3/3] i2c: nomadik: Add Device Tree support to the Nomadik I2C driver
Date: Mon, 3 Sep 2012 14:28:50 +0100 [thread overview]
Message-ID: <20120903132844.GD31163@gmail.com> (raw)
In-Reply-To: <CACRpkdZvWkH2gQQuNvCkNuB-faT8qHAjyiULSqPKrn+FCktvLg@mail.gmail.com>
On Mon, Sep 03, 2012 at 03:19:13PM +0200, Linus Walleij wrote:
> On Mon, Sep 3, 2012 at 2:34 PM, Lee Jones <lee.jones@linaro.org> wrote:
>
> > When booting DT booting take a different path and no platform data
> > is passed. We can't boot DT AND register devices with platform data
> > or else we will double probe every device. The only way to pass
> > pdata when booting with DT is with AUX_DATA() and that's a hack to
> > get around things we don't have support for yet. Up until now that
> > has been DMA bindings, clock and pinctrl names and call-backs.
>
> So if we pass some augmented platform data using AUX_DATA()
> that appears as pdata in this case, and gets discarded.
>
> Thus we cannot use AUX_DATA() to override a broken, as in
> "the interrupt number is wrong" device tree.
No, you cannot to that. You'd have to fix it in DT (which is easier).
> > If DT is corrupt or missing the kernel will boot using platform
> > data, but np will always be NULL, so we don't have the problem you
> > were alluding to above.
>
> That was not the problem I had in mind.
>
> I had a valid, but incorrect device tree in mind. I.e the device
> is there, but with wrong base address, or wrong IRQ number.
>
> If pdata takes precedence, we can use AUX_DATA() to
> override such errors from the platform, since drivers/of/platform.c
> helpfully pokes in the auxdata as the platform data.
Yes, that's what happens.
> I thought this was one of the reasons why auxdata exist
> at all.
I don't think so. I've been told that AUXDATA is just a hack. My
aim is to rid the boardfile of all AUXDATA entries.
> Or is the proper solution to runtime-patch the device tree
> per se in such cases? How is that actually done then?
No, you can't do that either. DT is only read once at boot-time.
The correct solution would be to fix the broken DT.
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2012-09-03 13:28 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-23 15:01 [PATCH 1/3] ARM: ux500: Add i2c configurations to the Device Tree for DB8500 based devices Lee Jones
2012-08-23 15:01 ` Lee Jones
2012-08-23 15:01 ` [PATCH 2/3] Documentation: Device Tree binding information for i2c-nomadik driver Lee Jones
2012-08-23 15:01 ` Lee Jones
2012-08-23 15:01 ` [PATCH 3/3] i2c: nomadik: Add Device Tree support to the Nomadik I2C driver Lee Jones
2012-08-23 15:01 ` Lee Jones
[not found] ` <1345734087-21803-3-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-08-27 23:42 ` Linus Walleij
2012-08-27 23:42 ` Linus Walleij
2012-08-27 23:42 ` Linus Walleij
[not found] ` <CACRpkdapY3JvZmLxK7dX917O-E+aDgVE9ELnysjqAyETXMZHNw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-08-31 10:36 ` Lee Jones
2012-08-31 10:36 ` Lee Jones
2012-08-31 10:36 ` Lee Jones
2012-08-31 11:22 ` Wolfram Sang
2012-08-31 11:22 ` Wolfram Sang
2012-08-31 11:22 ` Wolfram Sang
[not found] ` <20120831112258.GA2624-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-08-31 12:04 ` Lee Jones
2012-08-31 12:04 ` Lee Jones
2012-08-31 12:04 ` Lee Jones
2012-08-31 12:23 ` Lee Jones
2012-08-31 12:23 ` Lee Jones
2012-08-31 12:23 ` Lee Jones
[not found] ` <20120831122323.GC5962-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-03 9:22 ` Linus Walleij
2012-09-03 9:22 ` Linus Walleij
2012-09-03 9:22 ` Linus Walleij
[not found] ` <CACRpkdZ=C1EV4WO2b=1YLHPNhsDsQdq7Kfnpzm8i7uGRtVjJuQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-03 9:44 ` Wolfram Sang
2012-09-03 9:44 ` Wolfram Sang
2012-09-03 9:44 ` Wolfram Sang
[not found] ` <20120903094448.GB11780-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-09-03 9:50 ` Lee Jones
2012-09-03 9:50 ` Lee Jones
2012-09-03 9:50 ` Lee Jones
2012-09-03 10:07 ` Lee Jones
2012-09-03 10:07 ` Lee Jones
2012-09-03 10:07 ` Lee Jones
[not found] ` <20120903100656.GC5782-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-03 11:07 ` Linus Walleij
2012-09-03 11:07 ` Linus Walleij
2012-09-03 11:07 ` Linus Walleij
2012-09-03 11:11 ` Lee Jones
2012-09-03 11:11 ` Lee Jones
2012-09-03 11:32 ` Lee Jones
2012-09-03 11:32 ` Lee Jones
[not found] ` <CAF2Aj3j25w1Nn9O6hV+=i-j1ts_p_Ucswk_M7r04S7i5BzPkHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-03 11:58 ` Linus Walleij
2012-09-03 11:58 ` Linus Walleij
2012-09-03 11:58 ` Linus Walleij
[not found] ` <CACRpkdZ5VFhrbONy=0K5MFh4e6BDFckq0yqzjQ2QkW9MgwKqBg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-03 12:34 ` Lee Jones
2012-09-03 12:34 ` Lee Jones
2012-09-03 12:34 ` Lee Jones
[not found] ` <20120903123424.GA31163-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-03 13:19 ` Linus Walleij
2012-09-03 13:19 ` Linus Walleij
2012-09-03 13:19 ` Linus Walleij
[not found] ` <CACRpkdZvWkH2gQQuNvCkNuB-faT8qHAjyiULSqPKrn+FCktvLg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-03 13:28 ` Lee Jones [this message]
2012-09-03 13:28 ` Lee Jones
2012-09-03 13:28 ` Lee Jones
2012-09-03 14:33 ` Stephen Warren
2012-09-03 14:33 ` Stephen Warren
[not found] ` <5044BFD1.10708-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-09-03 14:35 ` Linus Walleij
2012-09-03 14:35 ` Linus Walleij
2012-09-03 14:35 ` Linus Walleij
[not found] ` <CACRpkda0akcLRe3J=fVcyYpxHmkJmVe+c1doXQ4=vOA6iNxe2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-03 15:09 ` Rob Herring
2012-09-03 15:09 ` Rob Herring
2012-09-03 15:09 ` Rob Herring
2012-09-03 15:20 ` Lee Jones
2012-09-03 15:20 ` Lee Jones
[not found] ` <20120903152012.GH31163-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-04 14:28 ` Arnd Bergmann
2012-09-04 14:28 ` Arnd Bergmann
2012-09-04 14:28 ` Arnd Bergmann
[not found] ` <201209041428.21409.arnd-r2nGTMty4D4@public.gmane.org>
2012-09-04 17:27 ` Linus Walleij
2012-09-04 17:27 ` Linus Walleij
2012-09-04 17:27 ` Linus Walleij
2012-09-04 17:35 ` Alessandro Rubini
2012-09-04 17:35 ` Alessandro Rubini
2012-09-04 17:35 ` Alessandro Rubini
[not found] ` <CACRpkdZESujO=2BU3jeKiX3Cm+JY2UPEXwGkro75FWa5Gio5YQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-05 6:41 ` Lee Jones
2012-09-05 6:41 ` Lee Jones
2012-09-05 6:41 ` Lee Jones
[not found] ` <20120905064106.GA4233-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-05 6:53 ` Linus Walleij
2012-09-05 6:53 ` Linus Walleij
2012-09-05 6:53 ` Linus Walleij
2012-09-05 7:33 ` Lee Jones
2012-09-05 7:33 ` Lee Jones
2012-09-05 7:33 ` Lee Jones
2012-09-05 8:22 ` Linus Walleij
2012-09-05 8:22 ` Linus Walleij
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=20120903132844.GD31163@gmail.com \
--to=lee.jones-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
--cc=STEricsson_nomadik_linux-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org \
--cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.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.