All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: Patrick Pannuto <ppannuto@codeaurora.org>
Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-omap@vger.kernel.org, damm@opensource.se,
	lethal@linux-sh.org, rjw@sisk.pl, dtor@mail.ru,
	eric.y.miao@gmail.com, netdev@vger.kernel.org
Subject: Re: [RFC PATCH] platform: Faciliatate the creation of pseduo-platform busses
Date: Tue, 3 Aug 2010 17:09:45 -0700	[thread overview]
Message-ID: <20100804000945.GA19729@suse.de> (raw)
In-Reply-To: <4C58AE15.6090900@codeaurora.org>

On Tue, Aug 03, 2010 at 05:02:29PM -0700, Patrick Pannuto wrote:
> On 08/03/2010 04:56 PM, Greg KH wrote:
> > On Tue, Aug 03, 2010 at 04:35:06PM -0700, Patrick Pannuto wrote:
> >> Inspiration for this comes from:
> >> http://www.mail-archive.com/linux-omap@vger.kernel.org/msg31161.html
> >>
> >> INTRO
> >>
> >> As SOCs become more popular, the desire to quickly define a simple,
> >> but functional, bus type with only a few unique properties becomes
> >> desirable. As they become more complicated, the ability to nest these
> >> simple busses and otherwise orchestrate them to match the actual
> >> topology also becomes desirable.
> >>
> >> EXAMPLE USAGE
> >>
> >> /arch/ARCH/MY_ARCH/my_bus.c:
> >>
> >> 	#include <linux/device.h>
> >> 	#include <linux/platform_device.h>
> >>
> >> 	struct bus_type my_bus_type = {
> >> 		.name	= "mybus",
> >> 	};
> >> 	EXPORT_SYMBOL_GPL(my_bus_type);

For your question below, this could be in write-only memory.  Well, I
guess it never is as we modify things in the bus structure, so nevermind
about that, false alarm.

> >>
> >> 	struct platform_device sub_bus1 = {
> >> 		.name		= "sub_bus1",
> >> 		.id		= -1,
> >> 		.dev.bus	= &my_bus_type,
> >> 	}
> >> 	EXPORT_SYMBOL_GPL(sub_bus1);
> > 
> > You really want a bus hanging off of a bus?  Normally you need a device
> > to do that, which is what I think you have here, but the naming is a bit
> > odd to me.
> > 
> > What would you do with this "sub bus"?  It's just a device, but you are
> > wanting it to be around for something.
> > 
> 
> It's for power management stuff, basically, there are actual physical buses
> involved that can be completely powered off IFF all of their devices are
> not in use. Plus it actually matches bus topology this way.

Then create a real bus hanging off of a device, not another device that
"acts" like a bus here, right?  Or am I missing the point?

> >> +void platform_bus_type_init(struct bus_type *bus)
> >> +{
> >> +	if (!bus->dev_attrs)
> >> +		bus->dev_attrs = platform_bus_type.dev_attrs;
> >> +	if (!bus->match)
> >> +		bus->match = platform_bus_type.match;
> >> +	if (!bus->uevent)
> >> +		bus->uevent = platform_bus_type.uevent;
> >> +	if (!bus->pm)
> >> +		bus->pm = platform_bus_type.pm;
> > 
> > Watch out for things in "write only" memory here.  That could cause
> > problems.
> 
> Pardon my ignorance (I'm quite new to kernel work), what do you mean
> here? What memory could be "write only"?

See above.  I was thinking that struct bus would be a constant or
something.  Sorry.

greg k-h

  reply	other threads:[~2010-08-04  0:10 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-03 23:35 [RFC PATCH] platform: Faciliatate the creation of pseduo-platform busses Patrick Pannuto
2010-08-03 23:36 ` Patrick Pannuto
2010-08-03 23:56 ` Greg KH
2010-08-04  0:02   ` Patrick Pannuto
2010-08-04  0:09     ` Greg KH [this message]
2010-08-04  0:17       ` Patrick Pannuto
2010-08-04  0:41         ` Timothy Meade
2010-08-04  0:41           ` Timothy Meade
2010-08-05 22:59         ` Grant Likely
2010-08-05 22:59           ` Grant Likely
2010-08-06 14:27           ` Greg KH
2010-08-06 15:12             ` Grant Likely
2010-08-06 15:12               ` Grant Likely
2010-08-06 23:46               ` Greg KH
2010-08-07  6:35                 ` Grant Likely
2010-08-07  6:35                   ` Grant Likely
2010-08-07  6:35                   ` Grant Likely
2010-08-07 17:28                   ` Grant Likely
2010-08-07 17:28                     ` Grant Likely
2010-08-10 23:53                     ` Greg KH
2010-08-10 23:53                       ` Greg KH
2010-08-05 23:00   ` Grant Likely
2010-08-05 23:00     ` Grant Likely
2010-08-04  9:37 ` Alan Cox

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=20100804000945.GA19729@suse.de \
    --to=gregkh@suse.de \
    --cc=damm@opensource.se \
    --cc=dtor@mail.ru \
    --cc=eric.y.miao@gmail.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=ppannuto@codeaurora.org \
    --cc=rjw@sisk.pl \
    /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.