Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 1781
b: refs/heads/master
c: 7e29875
h: refs/heads/master
i:
  1779: 01ccb04
v: v3
  • Loading branch information
Steve French committed May 19, 2005
1 parent c069720 commit 3a87ae1
Show file tree
Hide file tree
Showing 29 changed files with 283 additions and 769 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b1a45695bde0204597957e448923f09ce271ca80
refs/heads/master: 7e2987503dda95a5f80290bb8c06279009c2419e
6 changes: 2 additions & 4 deletions trunk/Documentation/filesystems/sysfs-pci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ that support it. For example, a given bus might look like this:
|-- 0000:17:00.0
| |-- class
| |-- config
| |-- detach_state
| |-- device
| |-- irq
| |-- local_cpus
Expand All @@ -19,7 +18,7 @@ that support it. For example, a given bus might look like this:
| |-- subsystem_device
| |-- subsystem_vendor
| `-- vendor
`-- detach_state
`-- ...

The topmost element describes the PCI domain and bus number. In this case,
the domain number is 0000 and the bus number is 17 (both values are in hex).
Expand All @@ -31,7 +30,6 @@ files, each with their own function.
---- --------
class PCI class (ascii, ro)
config PCI config space (binary, rw)
detach_state connection status (bool, rw)
device PCI device (ascii, ro)
irq IRQ number (ascii, ro)
local_cpus nearby CPU mask (cpumask, ro)
Expand Down Expand Up @@ -85,4 +83,4 @@ useful return codes should be provided.

Legacy resources are protected by the HAVE_PCI_LEGACY define. Platforms
wishing to support legacy functionality should define it and provide
pci_legacy_read, pci_legacy_write and pci_mmap_legacy_page_range functions.
pci_legacy_read, pci_legacy_write and pci_mmap_legacy_page_range functions.
21 changes: 0 additions & 21 deletions trunk/Documentation/power/devices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -207,27 +207,6 @@ SYSTEM_SHUTDOWN, I do not understand this one too much. probably event
#READY_AFTER_RESUME
#

Driver Detach Power Management

The kernel now supports the ability to place a device in a low-power
state when it is detached from its driver, which happens when its
module is removed.

Each device contains a 'detach_state' file in its sysfs directory
which can be used to control this state. Reading from this file
displays what the current detach state is set to. This is 0 (On) by
default. A user may write a positive integer value to this file in the
range of 1-4 inclusive.

A value of 1-3 will indicate the device should be placed in that
low-power state, which will cause ->suspend() to be called for that
device. A value of 4 indicates that the device should be shutdown, so
->shutdown() will be called for that device.

The driver is responsible for reinitializing the device when the
module is re-inserted during it's ->probe() (or equivalent) method.
The driver core will not call any extra functions when binding the
device to the driver.

pm_message_t meaning

Expand Down
4 changes: 2 additions & 2 deletions trunk/Documentation/powerpc/hvcs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -347,8 +347,8 @@ address that is created by firmware. An example vty-server sysfs entry
looks like the following:

Pow5:/sys/bus/vio/drivers/hvcs/30000004 # ls
. current_vty devspec name partner_vtys
.. detach_state index partner_clcs vterm_state
. current_vty devspec name partner_vtys
.. index partner_clcs vterm_state

Each entry is provided, by default with a "name" attribute. Reading the
"name" attribute will reveal the device type as shown in the following
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/base/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Makefile for the Linux device tree

obj-y := core.o sys.o interface.o bus.o \
obj-y := core.o sys.o bus.o \
driver.o class.o class_simple.o platform.o \
cpu.o firmware.o init.o map.o dmapool.o \
attribute_container.o transport_class.o
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/base/bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,6 @@ void device_release_driver(struct device * dev)
sysfs_remove_link(&drv->kobj, kobject_name(&dev->kobj));
sysfs_remove_link(&dev->kobj, "driver");
list_del_init(&dev->driver_list);
device_detach_shutdown(dev);
if (drv->remove)
drv->remove(dev);
dev->driver = NULL;
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/base/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@ int (*platform_notify_remove)(struct device * dev) = NULL;
#define to_dev(obj) container_of(obj, struct device, kobj)
#define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr)

extern struct attribute * dev_default_attrs[];

static ssize_t
dev_attr_show(struct kobject * kobj, struct attribute * attr, char * buf)
{
Expand Down Expand Up @@ -89,7 +87,6 @@ static void device_release(struct kobject * kobj)
static struct kobj_type ktype_device = {
.release = device_release,
.sysfs_ops = &dev_sysfs_ops,
.default_attrs = dev_default_attrs,
};


Expand Down
51 changes: 0 additions & 51 deletions trunk/drivers/base/interface.c

This file was deleted.

11 changes: 0 additions & 11 deletions trunk/drivers/base/power/power.h
Original file line number Diff line number Diff line change
@@ -1,18 +1,7 @@


enum {
DEVICE_PM_ON,
DEVICE_PM1,
DEVICE_PM2,
DEVICE_PM3,
DEVICE_PM_OFF,
};

/*
* shutdown.c
*/

extern int device_detach_shutdown(struct device *);
extern void device_shutdown(void);


Expand Down
11 changes: 10 additions & 1 deletion trunk/drivers/base/power/resume.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,17 @@ extern int sysdev_resume(void);

int resume_device(struct device * dev)
{
if (dev->bus && dev->bus->resume)
if (dev->power.pm_parent
&& dev->power.pm_parent->power.power_state) {
dev_err(dev, "PM: resume from %d, parent %s still %d\n",
dev->power.power_state,
dev->power.pm_parent->bus_id,
dev->power.pm_parent->power.power_state);
}
if (dev->bus && dev->bus->resume) {
dev_dbg(dev,"resuming\n");
return dev->bus->resume(dev);
}
return 0;
}

Expand Down
23 changes: 4 additions & 19 deletions trunk/drivers/base/power/shutdown.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,6 @@
extern struct subsystem devices_subsys;


int device_detach_shutdown(struct device * dev)
{
if (!dev->detach_state)
return 0;

if (dev->detach_state == DEVICE_PM_OFF) {
if (dev->driver && dev->driver->shutdown)
dev->driver->shutdown(dev);
return 0;
}
return dpm_runtime_suspend(dev, dev->detach_state);
}


/**
* We handle system devices differently - we suspend and shut them
* down last and resume them first. That way, we don't do anything stupid like
Expand All @@ -52,13 +38,12 @@ void device_shutdown(void)
struct device * dev;

down_write(&devices_subsys.rwsem);
list_for_each_entry_reverse(dev, &devices_subsys.kset.list, kobj.entry) {
pr_debug("shutting down %s: ", dev->bus_id);
list_for_each_entry_reverse(dev, &devices_subsys.kset.list,
kobj.entry) {
if (dev->driver && dev->driver->shutdown) {
pr_debug("Ok\n");
dev_dbg(dev, "shutdown\n");
dev->driver->shutdown(dev);
} else
pr_debug("Ignored.\n");
}
}
up_write(&devices_subsys.rwsem);

Expand Down
17 changes: 15 additions & 2 deletions trunk/drivers/base/power/suspend.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,25 @@ int suspend_device(struct device * dev, pm_message_t state)
{
int error = 0;

dev_dbg(dev, "suspending\n");
if (dev->power.power_state) {
dev_dbg(dev, "PM: suspend %d-->%d\n",
dev->power.power_state, state);
}
if (dev->power.pm_parent
&& dev->power.pm_parent->power.power_state) {
dev_err(dev,
"PM: suspend %d->%d, parent %s already %d\n",
dev->power.power_state, state,
dev->power.pm_parent->bus_id,
dev->power.pm_parent->power.power_state);
}

dev->power.prev_state = dev->power.power_state;

if (dev->bus && dev->bus->suspend && !dev->power.power_state)
if (dev->bus && dev->bus->suspend && !dev->power.power_state) {
dev_dbg(dev, "suspending\n");
error = dev->bus->suspend(dev, state);
}

return error;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/raw.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ raw_ioctl(struct inode *inode, struct file *filp,
{
struct block_device *bdev = filp->private_data;

return blkdev_ioctl(bdev->bd_inode, filp, command, arg);
return blkdev_ioctl(bdev->bd_inode, NULL, command, arg);
}

static void bind_device(struct raw_config_request *rq)
Expand Down
Loading

0 comments on commit 3a87ae1

Please sign in to comment.