From 9ebb08c8453022cbaf6b393ac58456a78861358f Mon Sep 17 00:00:00 2001 From: Gerd Knorr Date: Tue, 19 Oct 2004 02:19:10 -0700 Subject: [PATCH] [PATCH] I2C: i2c bus power management support The patch below adds power management support to the i2c bus. It adds just two small functions which call down to the devices power management functions if they are present, so the i2c device drivers will receive the suspend and resume events. From: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman --- drivers/i2c/i2c-core.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 2583ecaa95a17..1f67737cab726 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -517,9 +517,29 @@ static int i2c_device_match(struct device *dev, struct device_driver *drv) return 1; } +static int i2c_bus_suspend(struct device * dev, u32 state) +{ + int rc = 0; + + if (dev->driver && dev->driver->suspend) + rc = dev->driver->suspend(dev,state,0); + return rc; +} + +static int i2c_bus_resume(struct device * dev) +{ + int rc = 0; + + if (dev->driver && dev->driver->resume) + rc = dev->driver->resume(dev,0); + return rc; +} + struct bus_type i2c_bus_type = { .name = "i2c", .match = i2c_device_match, + .suspend = i2c_bus_suspend, + .resume = i2c_bus_resume, }; static int __init i2c_init(void) -- 2.53.0