From: Kay Sievers <kay.sievers@suse.de>
To: Paul Mundt <lethal@linux-sh.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
"R. J. Wysocki" <Rafal.Wysocki@fuw.edu.pl>,
LKML <linux-kernel@vger.kernel.org>, Greg KH <gregkh@suse.de>,
Linux PM mailing list <linux-pm@lists.linux-foundation.org>,
Russell King <linux@arm.linux.org.uk>,
Magnus Damm <magnus.damm@gmail.com>,
linux-sh@vger.kernel.org
Subject: Re: [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev
Date: Tue, 22 Mar 2011 14:19:56 +0000 [thread overview]
Message-ID: <1300803596.1456.10.camel@zag> (raw)
In-Reply-To: <20110322140420.GA24004@linux-sh.org>
On Tue, 2011-03-22 at 23:04 +0900, Paul Mundt wrote:
> On Sat, Mar 19, 2011 at 01:47:27AM +0100, Rafael J. Wysocki wrote:
> > On Thursday, March 17, 2011, Paul Mundt wrote:
> > > On Sun, Mar 13, 2011 at 02:03:49PM +0100, R. J. Wysocki wrote:
> > > > From: Rafael J. Wysocki <rjw@sisk.pl>
> > > >
> > > > Convert the SuperH clocks framework and shared interrupt handling
> > > > code to using struct syscore_ops instead of a sysdev classes and
> > > > sysdevs for power managment.
> > > >
> > > > This reduces the code size significantly and simplifies it. The
> > > > optimizations causing things not to be restored after creating a
> > > > hibernation image are removed, but they might lead to undesirable
> > > > effects during resume from hibernation (e.g. the clocks would be left
> > > > as the boot kernel set them, which might be not the same way as the
> > > > hibernated kernel had seen them before the hibernation).
> > > >
> > > > This also is necessary for removing sysdevs from the kernel entirely
> > > > in the future.
> > > >
> > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > >
> > > This misses the use of the sysdev class by the userimask code, though I'm
> > > open to suggestions for alternatives.
> >
> > For now, I'd simply move the sysdev class definition to userimask.c, like
> > in the patch below. The current goal is to eliminate the suspend/resume and
> > shutdown operations from sysdevs (and sysdev drivers), the next step will
> > be to replace the remaining sysdevs with alternative mechanisms.
> >
> It's not quite that straightforward, you've also killed off the name
> attribute for each of the intc sysdevs, so we no longer have a visible
> way to map a given intc controller number to the controller name in a
> user visible way.
>
> I'm not opposed to the syscore thing for suspend/resume ops, but I'm not
> willing to trash the userimask and name mapping interface in the process
> with no alternatives.
>
> userimask was the first global configuration item I added, but there are
> other per-controller and global configuration knobs that I plan to export
> through the interface, so there really needs to be a compelling reason
> for moving off of sysdevs.
Yes, they don't fit into the model. They have been a dumb hack from the
first day, and never integrated into the kenrel driver core or hotplug
properly.
If you need the userspace visibility, better just add a "struct
bus_type" with a proper name for your subsystem and register a "struct
device" with the bus_type assigned for all of them, instead of using the
broken concept of sydevs. You can even make them show up
in /sys/devices/system/<bus_type name>/<struct device name>/ if you want
to.
That way userspace can properly enumerate them in a flat list
in /sys/bus/<bus_type name>/devices/*, and gets proper events on module
load and during system coldplug, and can hook into the usual hotplug
pathes to set/get these values instead of crawling magicly defined and
decoupled locations in /sys which can not express proper hierarchy,
classicication, or anything else that all other devices can just do.
There is really no reason for any device being a magic and conceptually
broken sysdev today - just to be different from any other device the
kernel exports to userspace.
Thanks,
Kay
next prev parent reply other threads:[~2011-03-22 14:19 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201103100131.58206.rjw@sisk.pl>
[not found] ` <201103122212.40828.rjw@sisk.pl>
2011-03-13 13:02 ` [PATCH 9-10/10] Allow subsystems to avoid using sysdevs for defining "core" PM callbacks Rafael J. Wysocki
2011-03-13 13:03 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev R. J. Wysocki
2011-03-17 8:20 ` Paul Mundt
2011-03-19 0:47 ` Rafael J. Wysocki
2011-03-22 14:04 ` Paul Mundt
2011-03-22 14:19 ` Kay Sievers [this message]
2011-03-22 20:30 ` Rafael J. Wysocki
2011-03-22 20:39 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 21:00 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-22 21:12 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 21:49 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Paul Mundt
2011-03-22 22:00 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 22:23 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-22 22:44 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 23:32 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-22 23:46 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 23:50 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-23 9:45 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Russell King - ARM Linux
2011-03-22 22:23 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Paul Mundt
2011-03-23 11:12 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Mark Brown
2011-03-23 11:28 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Paul Mundt
2011-03-22 22:05 ` Rafael J. Wysocki
2011-03-22 22:20 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 22:42 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-22 22:56 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev Kay Sievers
2011-03-22 23:05 ` Kay Sievers
2011-03-22 23:47 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-22 20:19 ` Rafael J. Wysocki
2011-03-23 9:59 ` Paul Mundt
2011-03-23 20:39 ` Rafael J. Wysocki
2011-03-13 13:04 ` [PATCH 10/10] ARM: Use struct syscore_ops instead of sysdevs for PM in timer and leds Rafael J. Wysocki
2011-03-14 9:06 ` [PATCH 10/10] ARM: Use struct syscore_ops instead of sysdevs Stephen Boyd
2011-03-14 19:54 ` [Update] Re: [PATCH 10/10] ARM: Use struct syscore_ops instead of sysdevs for PM in timer and leds Rafael J. Wysocki
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=1300803596.1456.10.camel@zag \
--to=kay.sievers@suse.de \
--cc=Rafal.Wysocki@fuw.edu.pl \
--cc=gregkh@suse.de \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=magnus.damm@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).