public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matt Porter <matt.porter@linaro.org>
To: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Tony Lindgren" <tony@atomide.com>,
	"Russell King" <linux@arm.linux.org.uk>,
	"Benoît Coussno" <b-cousson@ti.com>,
	"Paul Walmsley" <paul@pwsan.com>,
	"Sourav Poddar" <sourav.poddar@ti.com>,
	"Russ Dill" <Russ.Dill@ti.com>, "Felipe Balbi" <balbi@ti.com>,
	"Koen Kooi" <koen@circuitco.com>,
	linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/5] pdev: Fix platform device resource linking
Date: Wed, 7 Aug 2013 13:13:48 -0400	[thread overview]
Message-ID: <20130807171345.GA30831@ohporter.com> (raw)
In-Reply-To: <29EDB4A0-B6EF-4795-AD14-A35D9415EFE2@antoniou-consulting.com>

[trimmed my old email]

On Wed, Aug 07, 2013 at 10:37:17AM +0300, Pantelis Antoniou wrote:
> Hi Greg,
> 
> On Aug 7, 2013, at 8:56 AM, Greg Kroah-Hartman wrote:
> 
> > On Tue, Aug 06, 2013 at 01:27:35PM +0300, Pantelis Antoniou wrote:
> >> Hi Greg,
> >> 
> >> On Aug 6, 2013, at 1:15 PM, Greg Kroah-Hartman wrote:
> >> 
> >>> On Tue, Aug 06, 2013 at 12:45:42PM +0300, Pantelis Antoniou wrote:
> >>>> Hi Greg,
> >>>> 
> >>>> On Aug 6, 2013, at 12:36 PM, Greg Kroah-Hartman wrote:
> >>>> 
> >>>>> On Tue, Aug 06, 2013 at 10:53:40AM +0300, Pantelis Antoniou wrote:
> >>>>>> Platform device removal uncovered a number of problems with
> >>>>>> the way resources are handled in the core platform code.
> >>>>>> 
> >>>>>> Resources now form child/parent linkages and this requires
> >>>>>> proper linking of the resources. On top of that the OF core
> >>>>>> directly creates it's own platform devices. Simplify things
> >>>>>> by providing helper functions that manage the linking properly.
> >>>>> 
> >>>>> Ugh, the OF core shouldn't be creating platform devices.  Well, yes, I
> >>>>> know it does that today, but ick, ick, ick.
> >>>>> 
> >>>> 
> >>>> Yep, ick, ick, ick is the correct form.
> >>>> 
> >>>>>> Two functions are provided:
> >>>>>> 
> >>>>>> platform_device_link_resources(), which links all the
> >>>>>> linkable resources (if not already linked).
> >>>>>> 
> >>>>>> and platform_device_unlink_resources(), which unlinks all the
> >>>>>> resources.
> >>>>> 
> >>>>> Why would anyone need to call this?  I'm getting the feeling that OF
> >>>>> should just have it's own bus of devices to handle this type of mess.
> >>>>> ACPI is going through the same rewrite for this same type of problem
> >>>>> (they did things differently.)  I suggest you work with the ACPI
> >>>>> developers to so the same thing they are, to solve it correctly for
> >>>>> everyone.
> >>>>> 
> >>>> 
> >>>> It's the same problem really. Another bus type might not fly well.
> >>>> The same device driver should be (in theory) be made to work unchanged
> >>>> either on an OF/ACPI/Fex( :) ) setup.
> >>> 
> >>> No, that's not quite true, a driver needs to know how to talk to the
> >>> bus, as that is how it communicates to the hardware.  It can be done for
> >>> different types of busses (see the OHCI USB controller for one example
> >>> of this), but a driver will have to know what type of bus it is on in
> >>> order to work properly.
> >>> 
> >> 
> >> In the case of OF & ACPI there is no 'bus'. The device is probably integrated
> >> in the SoC's silicon, but there is absolutely no way to 'probe' for it's existence;
> >> you have to use a-priori knowledge of the SoC's topology in order to configure it
> >> (along with any per-board specific information if there is any kind of shared 
> >> resource configuration - i.e. pinmuxing or something else).
> > 
> > Not all busses need to have the aiblity to "probe" for new devices,
> > that's not a requirement at all.  Some of them just "know" where the
> > devices are at in the driver model, and create the devices for the bus
> > just fine.
> > 
> > So don't think that just because of that lack of probing, they should be
> > on the "platform" bus at all.  Platform is for the "oh crap, I have no
> > way to bind this to anything else, make it a platform device then."
> > 
> 
> I'm not sure if you remember, but a long time ago when OF started getting
> into the kernel, there actually was an OCP (On Chip Peripheral) bus, 
> and the switch to platform devices was mandated by kernel people, by their
> insistance that platform devices would cover every case.
> 
> See here:
> 
> http://lkml.indiana.edu/hypermail/linux/kernel/0405.1/0930.html
> 
> I'm sure Matt Porter can shed some light on the exchange that led to the 
> abandonment of the ocp bus concept.

Heh, that OCP support looks a bit antiquated by today's standards. If it
helps, http://lkml.indiana.edu/hypermail/linux/kernel/0501.2/0696.html
is the posting where Kumar starts taking arch/ppc away from using
drivers/ocp/. I can't find any public discussion that led to this, but I
recall the common advice was "just use platform devices". This was,
incidentally, just before the move to arch/powerpc (and DT for all)
began.

Keep in mind that this is 8ish years ago before embedded was
fashionable since we didn't all have Linux machines in our pockets.
I suspect that advice was given because nobody cared about
platform_device removal and it worked for the use cases at the time.

-Matt

  reply	other threads:[~2013-08-07 17:13 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1375775624-12250-1-git-send-email-panto@antoniou-consulting.com>
     [not found] ` <1375775624-12250-6-git-send-email-panto@antoniou-consulting.com>
2013-08-06  9:33   ` [PATCH 5/5] arm: omap: Proper cleanups for omap_device Greg Kroah-Hartman
2013-08-06  9:37     ` Pantelis Antoniou
2013-08-06 10:14       ` Greg Kroah-Hartman
2013-08-06 13:37         ` Alexander Holler
2013-08-07  5:52           ` Greg Kroah-Hartman
2013-08-07 15:22             ` Alexander Holler
2013-08-07  7:44         ` Pantelis Antoniou
2013-08-07 16:15       ` Tony Lindgren
2013-08-07 16:23         ` Pantelis Antoniou
2013-08-08  7:25           ` Tony Lindgren
     [not found] ` <1375775624-12250-2-git-send-email-panto@antoniou-consulting.com>
2013-08-06  9:36   ` [PATCH 1/5] pdev: Fix platform device resource linking Greg Kroah-Hartman
2013-08-06  9:45     ` Pantelis Antoniou
2013-08-06 10:15       ` Greg Kroah-Hartman
2013-08-06 10:19         ` Russell King - ARM Linux
2013-08-07  5:57           ` Greg Kroah-Hartman
2013-08-07  8:27             ` Russell King - ARM Linux
2013-08-06 10:27         ` Pantelis Antoniou
2013-08-07  5:56           ` Greg Kroah-Hartman
2013-08-07  7:37             ` Pantelis Antoniou
2013-08-07 17:13               ` Matt Porter [this message]
     [not found] ` <1375775624-12250-4-git-send-email-panto@antoniou-consulting.com>
     [not found]   ` <87a9kt2vd8.fsf@linaro.org>
2013-08-08  9:23     ` [PATCH 3/5] omap: Properly handle resources for omap_devices Pantelis Antoniou
2013-08-09 15:16       ` Kevin Hilman
2013-08-09 15:32         ` Pantelis Antoniou
2013-08-09 16:35           ` Kevin Hilman
2013-08-09 18:08             ` Pantelis Antoniou
     [not found] ` <1375775624-12250-5-git-send-email-panto@antoniou-consulting.com>
     [not found]   ` <87siyl19uk.fsf@linaro.org>
2013-08-08  9:29     ` [PATCH 4/5] omap: Avoid crashes in the case of hwmod misconfiguration Pantelis Antoniou

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=20130807171345.GA30831@ohporter.com \
    --to=matt.porter@linaro.org \
    --cc=Russ.Dill@ti.com \
    --cc=b-cousson@ti.com \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=koen@circuitco.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=panto@antoniou-consulting.com \
    --cc=paul@pwsan.com \
    --cc=sourav.poddar@ti.com \
    --cc=tony@atomide.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox