Message ID | 1308212080-22516-1-git-send-email-linus.walleij@stericsson.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Thu, Jun 16, 2011 at 10:14:40AM +0200, Linus Walleij wrote: > From: Rabin Vincent <rabin.vincent@stericsson.com> > > Insert notifiers for the runtime PM API. With this the runtime > PM layer kicks in to action where used. > > Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> > Reviewed-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> > Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com> > Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> > [Rebased to Linux 3.0-rc3, edit description] > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Applied, thanks. g. > --- > drivers/spi/spi-pl022.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c > index ac7c727..48fa8b0 100644 > --- a/drivers/spi/spi-pl022.c > +++ b/drivers/spi/spi-pl022.c > @@ -40,6 +40,7 @@ > #include <linux/dmaengine.h> > #include <linux/dma-mapping.h> > #include <linux/scatterlist.h> > +#include <linux/pm_runtime.h> > > /* > * This macro is used to define some register default values. > @@ -517,6 +518,7 @@ static void giveback(struct pl022 *pl022) > clk_disable(pl022->clk); > amba_pclk_disable(pl022->adev); > amba_vcore_disable(pl022->adev); > + pm_runtime_put(&pl022->adev->dev); > } > > /** > @@ -1542,6 +1544,7 @@ static void pump_messages(struct work_struct *work) > * and core will be disabled when giveback() is called in each method > * (poll/interrupt/DMA) > */ > + pm_runtime_get_sync(&pl022->adev->dev); > amba_vcore_enable(pl022->adev); > amba_pclk_enable(pl022->adev); > clk_enable(pl022->clk); > @@ -2143,6 +2146,8 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) > } > printk(KERN_INFO "pl022: mapped registers from 0x%08x to %p\n", > adev->res.start, pl022->virtbase); > + pm_runtime_enable(dev); > + pm_runtime_resume(dev); > > pl022->clk = clk_get(&adev->dev, NULL); > if (IS_ERR(pl022->clk)) { > @@ -2204,6 +2209,7 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) > destroy_queue(pl022); > pl022_dma_remove(pl022); > free_irq(adev->irq[0], pl022); > + pm_runtime_disable(&adev->dev); > err_no_irq: > clk_put(pl022->clk); > err_no_clk: > -- > 1.7.3.2 > ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index ac7c727..48fa8b0 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -40,6 +40,7 @@ #include <linux/dmaengine.h> #include <linux/dma-mapping.h> #include <linux/scatterlist.h> +#include <linux/pm_runtime.h> /* * This macro is used to define some register default values. @@ -517,6 +518,7 @@ static void giveback(struct pl022 *pl022) clk_disable(pl022->clk); amba_pclk_disable(pl022->adev); amba_vcore_disable(pl022->adev); + pm_runtime_put(&pl022->adev->dev); } /** @@ -1542,6 +1544,7 @@ static void pump_messages(struct work_struct *work) * and core will be disabled when giveback() is called in each method * (poll/interrupt/DMA) */ + pm_runtime_get_sync(&pl022->adev->dev); amba_vcore_enable(pl022->adev); amba_pclk_enable(pl022->adev); clk_enable(pl022->clk); @@ -2143,6 +2146,8 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) } printk(KERN_INFO "pl022: mapped registers from 0x%08x to %p\n", adev->res.start, pl022->virtbase); + pm_runtime_enable(dev); + pm_runtime_resume(dev); pl022->clk = clk_get(&adev->dev, NULL); if (IS_ERR(pl022->clk)) { @@ -2204,6 +2209,7 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) destroy_queue(pl022); pl022_dma_remove(pl022); free_irq(adev->irq[0], pl022); + pm_runtime_disable(&adev->dev); err_no_irq: clk_put(pl022->clk); err_no_clk: