* [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare
@ 2012-05-25 23:14 Fabio Estevam
2012-05-25 23:14 ` [PATCH 02/15] ata: " Fabio Estevam
` (10 more replies)
0 siblings, 11 replies; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: linux-arm-kernel
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: <linux-arm-kernel@lists.infradead.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
arch/arm/mach-imx/mm-imx5.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-imx/mm-imx5.c b/arch/arm/mach-imx/mm-imx5.c
index feeee17..fcad95c 100644
--- a/arch/arm/mach-imx/mm-imx5.c
+++ b/arch/arm/mach-imx/mm-imx5.c
@@ -35,11 +35,11 @@ static void imx5_idle(void)
return;
clk_prepare(gpc_dvfs_clk);
}
- clk_enable(gpc_dvfs_clk);
+ clk_prepare_enable(gpc_dvfs_clk);
mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
if (!tzic_enable_wake())
cpu_do_idle();
- clk_disable(gpc_dvfs_clk);
+ clk_disable_unprepare(gpc_dvfs_clk);
}
/*
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 02/15] ata: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-29 9:17 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 03/15] hw_random: mxc-rnga: " Fabio Estevam
` (9 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Jeff Garzik, linux-ide
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: <linux-ide@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/ata/pata_imx.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/ata/pata_imx.c b/drivers/ata/pata_imx.c
index c5af97f..87bb05b 100644
--- a/drivers/ata/pata_imx.c
+++ b/drivers/ata/pata_imx.c
@@ -118,7 +118,7 @@ static int __devinit pata_imx_probe(struct platform_device *pdev)
return PTR_ERR(priv->clk);
}
- clk_enable(priv->clk);
+ clk_prepare_enable(priv->clk);
host = ata_host_alloc(&pdev->dev, 1);
if (!host)
@@ -162,7 +162,7 @@ static int __devinit pata_imx_probe(struct platform_device *pdev)
&pata_imx_sht);
free_priv:
- clk_disable(priv->clk);
+ clk_disable_unprepare(priv->clk);
clk_put(priv->clk);
return -ENOMEM;
}
@@ -176,7 +176,7 @@ static int __devexit pata_imx_remove(struct platform_device *pdev)
__raw_writel(0, priv->host_regs + PATA_IMX_ATA_INT_EN);
- clk_disable(priv->clk);
+ clk_disable_unprepare(priv->clk);
clk_put(priv->clk);
return 0;
@@ -194,7 +194,7 @@ static int pata_imx_suspend(struct device *dev)
__raw_writel(0, priv->host_regs + PATA_IMX_ATA_INT_EN);
priv->ata_ctl =
__raw_readl(priv->host_regs + PATA_IMX_ATA_CONTROL);
- clk_disable(priv->clk);
+ clk_disable_unprepare(priv->clk);
}
return ret;
@@ -205,7 +205,7 @@ static int pata_imx_resume(struct device *dev)
struct ata_host *host = dev_get_drvdata(dev);
struct pata_imx_priv *priv = host->private_data;
- clk_enable(priv->clk);
+ clk_prepare_enable(priv->clk);
__raw_writel(priv->ata_ctl, priv->host_regs + PATA_IMX_ATA_CONTROL);
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 03/15] hw_random: mxc-rnga: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
2012-05-25 23:14 ` [PATCH 02/15] ata: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-26 11:29 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 04/15] dma: imx-sdma: " Fabio Estevam
` (8 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Herbert Xu, linux-kernel
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: <linux-kernel@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/char/hw_random/mxc-rnga.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/mxc-rnga.c
index 187c6be..6f20f56 100644
--- a/drivers/char/hw_random/mxc-rnga.c
+++ b/drivers/char/hw_random/mxc-rnga.c
@@ -154,7 +154,7 @@ static int __init mxc_rnga_probe(struct platform_device *pdev)
goto out;
}
- clk_enable(clk);
+ clk_prepare_enable(clk);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -196,7 +196,7 @@ err_ioremap:
release_mem_region(res->start, resource_size(res));
err_region:
- clk_disable(clk);
+ clk_disable_unprepare(clk);
clk_put(clk);
out:
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 04/15] dma: imx-sdma: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
2012-05-25 23:14 ` [PATCH 02/15] ata: " Fabio Estevam
2012-05-25 23:14 ` [PATCH 03/15] hw_random: mxc-rnga: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-26 11:30 ` Sascha Hauer
2012-05-26 16:03 ` [PATCH v2 03/15] hw_random: mxc-rnga: " Fabio Estevam
2012-05-25 23:14 ` [PATCH 05/15] keyboard: imx_keypad: " Fabio Estevam
` (7 subsequent siblings)
10 siblings, 2 replies; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Vinod Koul, linux-kernel
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: <linux-kernel@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/dma/imx-sdma.c | 28 ++++++++++++++--------------
1 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index fb4f499..b6174e6 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -868,8 +868,8 @@ static int sdma_alloc_chan_resources(struct dma_chan *chan)
sdmac->peripheral_type = data->peripheral_type;
sdmac->event_id0 = data->dma_request;
- clk_enable(sdmac->sdma->clk_ipg);
- clk_enable(sdmac->sdma->clk_ahb);
+ clk_prepare_enable(sdmac->sdma->clk_ipg);
+ clk_prepare_enable(sdmac->sdma->clk_ahb);
ret = sdma_request_channel(sdmac);
if (ret)
@@ -906,8 +906,8 @@ static void sdma_free_chan_resources(struct dma_chan *chan)
dma_free_coherent(NULL, PAGE_SIZE, sdmac->bd, sdmac->bd_phys);
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);
}
static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
@@ -1180,14 +1180,14 @@ static void sdma_load_firmware(const struct firmware *fw, void *context)
addr = (void *)header + header->script_addrs_start;
ram_code = (void *)header + header->ram_code_start;
- clk_enable(sdma->clk_ipg);
- clk_enable(sdma->clk_ahb);
+ clk_prepare_enable(sdma->clk_ipg);
+ clk_prepare_enable(sdma->clk_ahb);
/* download the RAM image for SDMA */
sdma_load_script(sdma, ram_code,
header->ram_code_size,
addr->ram_code_start_addr);
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);
sdma_add_scripts(sdma, addr);
@@ -1229,8 +1229,8 @@ static int __init sdma_init(struct sdma_engine *sdma)
return -ENODEV;
}
- clk_enable(sdma->clk_ipg);
- clk_enable(sdma->clk_ahb);
+ clk_prepare_enable(sdma->clk_ipg);
+ clk_prepare_enable(sdma->clk_ahb);
/* Be sure SDMA has not started yet */
writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
@@ -1283,14 +1283,14 @@ static int __init sdma_init(struct sdma_engine *sdma)
/* Initializes channel's priorities */
sdma_set_channel_priority(&sdma->channel[0], 7);
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);
return 0;
err_dma_alloc:
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);
dev_err(sdma->dev, "initialisation failed with %d\n", ret);
return ret;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 05/15] keyboard: imx_keypad: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (2 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 04/15] dma: imx-sdma: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-29 9:18 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 06/15] video: mx1_camera: " Fabio Estevam
` (6 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Dmitry Torokhov, linux-input
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: <linux-input@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/input/keyboard/imx_keypad.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/input/keyboard/imx_keypad.c b/drivers/input/keyboard/imx_keypad.c
index 6ee7421..9d57945 100644
--- a/drivers/input/keyboard/imx_keypad.c
+++ b/drivers/input/keyboard/imx_keypad.c
@@ -378,7 +378,7 @@ static void imx_keypad_close(struct input_dev *dev)
imx_keypad_inhibit(keypad);
/* Disable clock unit */
- clk_disable(keypad->clk);
+ clk_disable_unprepare(keypad->clk);
}
static int imx_keypad_open(struct input_dev *dev)
@@ -391,7 +391,7 @@ static int imx_keypad_open(struct input_dev *dev)
keypad->enabled = true;
/* Enable the kpp clock */
- clk_enable(keypad->clk);
+ clk_prepare_enable(keypad->clk);
imx_keypad_config(keypad);
/* Sanity control, not all the rows must be actived now. */
@@ -581,7 +581,7 @@ static int imx_kbd_suspend(struct device *dev)
mutex_lock(&input_dev->mutex);
if (input_dev->users)
- clk_disable(kbd->clk);
+ clk_disable_unprepare(kbd->clk);
mutex_unlock(&input_dev->mutex);
@@ -603,7 +603,7 @@ static int imx_kbd_resume(struct device *dev)
mutex_lock(&input_dev->mutex);
if (input_dev->users)
- clk_enable(kbd->clk);
+ clk_prepare_enable(kbd->clk);
mutex_unlock(&input_dev->mutex);
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 06/15] video: mx1_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (3 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 05/15] keyboard: imx_keypad: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-29 9:20 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 07/15] video: mx2_camera: " Fabio Estevam
` (5 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Guennadi Liakhovetski, linux-media
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: <linux-media@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/media/video/mx1_camera.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c
index 4296a83..dc58084 100644
--- a/drivers/media/video/mx1_camera.c
+++ b/drivers/media/video/mx1_camera.c
@@ -402,7 +402,7 @@ static void mx1_camera_activate(struct mx1_camera_dev *pcdev)
dev_dbg(pcdev->icd->parent, "Activate device\n");
- clk_enable(pcdev->clk);
+ clk_prepare_enable(pcdev->clk);
/* enable CSI before doing anything else */
__raw_writel(csicr1, pcdev->base + CSICR1);
@@ -421,7 +421,7 @@ static void mx1_camera_deactivate(struct mx1_camera_dev *pcdev)
/* Disable all CSI interface */
__raw_writel(0x00, pcdev->base + CSICR1);
- clk_disable(pcdev->clk);
+ clk_disable_unprepare(pcdev->clk);
}
/*
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 07/15] video: mx2_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (4 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 06/15] video: mx1_camera: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-29 9:21 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 08/15] video: mx2_emmaprp: " Fabio Estevam
` (4 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Guennadi Liakhovetski, linux-media
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: <linux-media@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/media/video/mx2_camera.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
index ded26b7..71b67a3 100644
--- a/drivers/media/video/mx2_camera.c
+++ b/drivers/media/video/mx2_camera.c
@@ -402,7 +402,7 @@ static void mx2_camera_deactivate(struct mx2_camera_dev *pcdev)
{
unsigned long flags;
- clk_disable(pcdev->clk_csi);
+ clk_disable_unprepare(pcdev->clk_csi);
writel(0, pcdev->base_csi + CSICR1);
if (cpu_is_mx27()) {
writel(0, pcdev->base_emma + PRP_CNTL);
@@ -430,7 +430,7 @@ static int mx2_camera_add_device(struct soc_camera_device *icd)
if (pcdev->icd)
return -EBUSY;
- ret = clk_enable(pcdev->clk_csi);
+ ret = clk_prepare_enable(pcdev->clk_csi);
if (ret < 0)
return ret;
@@ -1664,7 +1664,7 @@ static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev)
goto exit_free_irq;
}
- clk_enable(pcdev->clk_emma);
+ clk_prepare_enable(pcdev->clk_emma);
err = mx27_camera_emma_prp_reset(pcdev);
if (err)
@@ -1673,7 +1673,7 @@ static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev)
return err;
exit_clk_emma_put:
- clk_disable(pcdev->clk_emma);
+ clk_disable_unprepare(pcdev->clk_emma);
clk_put(pcdev->clk_emma);
exit_free_irq:
free_irq(pcdev->irq_emma, pcdev);
@@ -1810,7 +1810,7 @@ exit_free_emma:
eallocctx:
if (cpu_is_mx27()) {
free_irq(pcdev->irq_emma, pcdev);
- clk_disable(pcdev->clk_emma);
+ clk_disable_unprepare(pcdev->clk_emma);
clk_put(pcdev->clk_emma);
iounmap(pcdev->base_emma);
release_mem_region(pcdev->res_emma->start, resource_size(pcdev->res_emma));
@@ -1850,7 +1850,7 @@ static int __devexit mx2_camera_remove(struct platform_device *pdev)
iounmap(pcdev->base_csi);
if (cpu_is_mx27()) {
- clk_disable(pcdev->clk_emma);
+ clk_disable_unprepare(pcdev->clk_emma);
clk_put(pcdev->clk_emma);
iounmap(pcdev->base_emma);
res = pcdev->res_emma;
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 08/15] video: mx2_emmaprp: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (5 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 07/15] video: mx2_camera: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-29 9:21 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 09/15] nand: mxc_nand: " Fabio Estevam
` (3 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Guennadi Liakhovetski, linux-media
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: <linux-media@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/media/video/mx2_emmaprp.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/video/mx2_emmaprp.c b/drivers/media/video/mx2_emmaprp.c
index 0bd5815..b364557 100644
--- a/drivers/media/video/mx2_emmaprp.c
+++ b/drivers/media/video/mx2_emmaprp.c
@@ -800,7 +800,7 @@ static int emmaprp_open(struct file *file)
return ret;
}
- clk_enable(pcdev->clk_emma);
+ clk_prepare_enable(pcdev->clk_emma);
ctx->q_data[V4L2_M2M_SRC].fmt = &formats[1];
ctx->q_data[V4L2_M2M_DST].fmt = &formats[0];
@@ -816,7 +816,7 @@ static int emmaprp_release(struct file *file)
dprintk(pcdev, "Releasing instance %p\n", ctx);
- clk_disable(pcdev->clk_emma);
+ clk_disable_unprepare(pcdev->clk_emma);
v4l2_m2m_ctx_release(ctx->m2m_ctx);
kfree(ctx);
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 09/15] nand: mxc_nand: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (6 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 08/15] video: mx2_emmaprp: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-27 12:36 ` Artem Bityutskiy
2012-05-25 23:14 ` [PATCH 11/15] serial: mxs-auart: " Fabio Estevam
` (2 subsequent siblings)
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: Fabio Estevam, Artem Bityutskiy, linux-mtd, shawn.guo
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Cc: <linux-mtd@lists.infradead.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/mtd/nand/mxc_nand.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index fd14966..d6efa17 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -764,7 +764,7 @@ static void mxc_nand_select_chip_v2(struct mtd_info *mtd, int chip)
if (chip == -1) {
/* Disable the NFC clock */
if (host->clk_act) {
- clk_disable(host->clk);
+ clk_disable_unprepare(host->clk);
host->clk_act = 0;
}
return;
@@ -772,7 +772,7 @@ static void mxc_nand_select_chip_v2(struct mtd_info *mtd, int chip)
if (!host->clk_act) {
/* Enable the NFC clock */
- clk_enable(host->clk);
+ clk_prepare_enable(host->clk);
host->clk_act = 1;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 11/15] serial: mxs-auart: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (7 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 09/15] nand: mxc_nand: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-06-11 2:36 ` Shawn Guo
2012-05-25 23:14 ` [PATCH 15/15] ASoC: mxs-saif: " Fabio Estevam
2012-05-26 11:28 ` [PATCH 01/15] ARM: mx5: " Sascha Hauer
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Alan Cox, Greg Kroah-Hartman,
linux-serial
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Alan Cox <alan@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: <linux-serial@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/tty/serial/mxs-auart.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..c109642 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -552,7 +552,7 @@ auart_console_write(struct console *co, const char *str, unsigned int count)
s = auart_port[co->index];
port = &s->port;
- clk_enable(s->clk);
+ clk_prepare_enable(s->clk);
/* First save the CR then disable the interrupts */
old_ctrl2 = readl(port->membase + AUART_CTRL2);
@@ -578,7 +578,7 @@ auart_console_write(struct console *co, const char *str, unsigned int count)
writel(old_ctrl0, port->membase + AUART_CTRL0);
writel(old_ctrl2, port->membase + AUART_CTRL2);
- clk_disable(s->clk);
+ clk_disable_unprepare(s->clk);
}
static void __init
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 15/15] ASoC: mxs-saif: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (8 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 11/15] serial: mxs-auart: " Fabio Estevam
@ 2012-05-25 23:14 ` Fabio Estevam
2012-05-28 14:51 ` Mark Brown
2012-05-26 11:28 ` [PATCH 01/15] ARM: mx5: " Sascha Hauer
10 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-25 23:14 UTC (permalink / raw)
To: kernel; +Cc: Fabio Estevam, alsa-devel, Mark Brown, shawn.guo
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: <alsa-devel@alsa-project.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
sound/soc/mxs/mxs-saif.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
index aba71bf..15ad61a 100644
--- a/sound/soc/mxs/mxs-saif.c
+++ b/sound/soc/mxs/mxs-saif.c
@@ -482,7 +482,7 @@ static int mxs_saif_trigger(struct snd_pcm_substream *substream, int cmd,
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
dev_dbg(cpu_dai->dev, "start\n");
- clk_enable(master_saif->clk);
+ clk_prepare_enable(master_saif->clk);
if (!master_saif->mclk_in_use)
__raw_writel(BM_SAIF_CTRL_RUN,
master_saif->base + SAIF_CTRL + MXS_SET_ADDR);
@@ -492,7 +492,7 @@ static int mxs_saif_trigger(struct snd_pcm_substream *substream, int cmd,
* itself clk for its internal basic logic to work.
*/
if (saif != master_saif) {
- clk_enable(saif->clk);
+ clk_prepare_enable(saif->clk);
__raw_writel(BM_SAIF_CTRL_RUN,
saif->base + SAIF_CTRL + MXS_SET_ADDR);
}
@@ -534,13 +534,13 @@ static int mxs_saif_trigger(struct snd_pcm_substream *substream, int cmd,
master_saif->base + SAIF_CTRL + MXS_CLR_ADDR);
udelay(delay);
}
- clk_disable(master_saif->clk);
+ clk_disable_unprepare(master_saif->clk);
if (saif != master_saif) {
__raw_writel(BM_SAIF_CTRL_RUN,
saif->base + SAIF_CTRL + MXS_CLR_ADDR);
udelay(delay);
- clk_disable(saif->clk);
+ clk_disable_unprepare(saif->clk);
}
master_saif->ongoing = 0;
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
` (9 preceding siblings ...)
2012-05-25 23:14 ` [PATCH 15/15] ASoC: mxs-saif: " Fabio Estevam
@ 2012-05-26 11:28 ` Sascha Hauer
10 siblings, 0 replies; 34+ messages in thread
From: Sascha Hauer @ 2012-05-26 11:28 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, May 25, 2012 at 08:14:42PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: <linux-arm-kernel@lists.infradead.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> arch/arm/mach-imx/mm-imx5.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-imx/mm-imx5.c b/arch/arm/mach-imx/mm-imx5.c
> index feeee17..fcad95c 100644
> --- a/arch/arm/mach-imx/mm-imx5.c
> +++ b/arch/arm/mach-imx/mm-imx5.c
> @@ -35,11 +35,11 @@ static void imx5_idle(void)
> return;
> clk_prepare(gpc_dvfs_clk);
> }
> - clk_enable(gpc_dvfs_clk);
> + clk_prepare_enable(gpc_dvfs_clk);
> mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
> if (!tzic_enable_wake())
> cpu_do_idle();
> - clk_disable(gpc_dvfs_clk);
> + clk_disable_unprepare(gpc_dvfs_clk);
> }
No, the clock already is prepared.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 03/15] hw_random: mxc-rnga: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 03/15] hw_random: mxc-rnga: " Fabio Estevam
@ 2012-05-26 11:29 ` Sascha Hauer
0 siblings, 0 replies; 34+ messages in thread
From: Sascha Hauer @ 2012-05-26 11:29 UTC (permalink / raw)
To: Fabio Estevam; +Cc: kernel, shawn.guo, Fabio Estevam, Herbert Xu, linux-kernel
On Fri, May 25, 2012 at 08:14:44PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> Cc: <linux-kernel@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> drivers/char/hw_random/mxc-rnga.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/mxc-rnga.c
> index 187c6be..6f20f56 100644
> --- a/drivers/char/hw_random/mxc-rnga.c
> +++ b/drivers/char/hw_random/mxc-rnga.c
> @@ -154,7 +154,7 @@ static int __init mxc_rnga_probe(struct platform_device *pdev)
> goto out;
> }
>
> - clk_enable(clk);
> + clk_prepare_enable(clk);
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> if (!res) {
> @@ -196,7 +196,7 @@ err_ioremap:
> release_mem_region(res->start, resource_size(res));
>
> err_region:
> - clk_disable(clk);
> + clk_disable_unprepare(clk);
You forgot the clk_disable_unprepare in the remove path.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 04/15] dma: imx-sdma: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 04/15] dma: imx-sdma: " Fabio Estevam
@ 2012-05-26 11:30 ` Sascha Hauer
2012-05-26 16:03 ` [PATCH v2 03/15] hw_random: mxc-rnga: " Fabio Estevam
1 sibling, 0 replies; 34+ messages in thread
From: Sascha Hauer @ 2012-05-26 11:30 UTC (permalink / raw)
To: Fabio Estevam; +Cc: kernel, shawn.guo, Fabio Estevam, Vinod Koul, linux-kernel
On Fri, May 25, 2012 at 08:14:45PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Vinod Koul <vinod.koul@intel.com>
> Cc: <linux-kernel@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> drivers/dma/imx-sdma.c | 28 ++++++++++++++--------------
> 1 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
> index fb4f499..b6174e6 100644
> --- a/drivers/dma/imx-sdma.c
> +++ b/drivers/dma/imx-sdma.c
> @@ -868,8 +868,8 @@ static int sdma_alloc_chan_resources(struct dma_chan *chan)
> sdmac->peripheral_type = data->peripheral_type;
> sdmac->event_id0 = data->dma_request;
>
> - clk_enable(sdmac->sdma->clk_ipg);
> - clk_enable(sdmac->sdma->clk_ahb);
> + clk_prepare_enable(sdmac->sdma->clk_ipg);
> + clk_prepare_enable(sdmac->sdma->clk_ahb);
No, the clock already is prepared, see the probe function.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v2 03/15] hw_random: mxc-rnga: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 04/15] dma: imx-sdma: " Fabio Estevam
2012-05-26 11:30 ` Sascha Hauer
@ 2012-05-26 16:03 ` Fabio Estevam
2012-05-29 9:17 ` Sascha Hauer
1 sibling, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-26 16:03 UTC (permalink / raw)
To: kernel; +Cc: shawn.guo, Fabio Estevam, Herbert Xu, linux-kernel
From: Fabio Estevam <fabio.estevam@freescale.com>
Prepare the clock before enabling it.
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: <linux-kernel@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v1:
- Add missing clk_disable_unprepare(clk) in the remove path
drivers/char/hw_random/mxc-rnga.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/mxc-rnga.c
index 187c6be..430582c 100644
--- a/drivers/char/hw_random/mxc-rnga.c
+++ b/drivers/char/hw_random/mxc-rnga.c
@@ -154,7 +154,7 @@ static int __init mxc_rnga_probe(struct platform_device *pdev)
goto out;
}
- clk_enable(clk);
+ clk_prepare_enable(clk);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -196,7 +196,7 @@ err_ioremap:
release_mem_region(res->start, resource_size(res));
err_region:
- clk_disable(clk);
+ clk_disable_unprepare(clk);
clk_put(clk);
out:
@@ -215,7 +215,7 @@ static int __exit mxc_rnga_remove(struct platform_device *pdev)
release_mem_region(res->start, resource_size(res));
- clk_disable(clk);
+ clk_disable_unprepare(clk);
clk_put(clk);
return 0;
--
1.7.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [PATCH 09/15] nand: mxc_nand: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 09/15] nand: mxc_nand: " Fabio Estevam
@ 2012-05-27 12:36 ` Artem Bityutskiy
0 siblings, 0 replies; 34+ messages in thread
From: Artem Bityutskiy @ 2012-05-27 12:36 UTC (permalink / raw)
To: Fabio Estevam
Cc: Fabio Estevam, Artem Bityutskiy, linux-mtd, shawn.guo, kernel
[-- Attachment #1: Type: text/plain, Size: 228 bytes --]
On Fri, 2012-05-25 at 20:14 -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
Pushed to l2-mtd.git, thanks!
--
Best Regards,
Artem Bityutskiy
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 15/15] ASoC: mxs-saif: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 15/15] ASoC: mxs-saif: " Fabio Estevam
@ 2012-05-28 14:51 ` Mark Brown
2012-05-28 15:21 ` Fabio Estevam
0 siblings, 1 reply; 34+ messages in thread
From: Mark Brown @ 2012-05-28 14:51 UTC (permalink / raw)
To: Fabio Estevam; +Cc: Fabio Estevam, alsa-devel, shawn.guo, kernel
On Fri, May 25, 2012 at 08:14:56PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
Applied, thanks.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 15/15] ASoC: mxs-saif: Use clk_prepare_enable/clk_disable_unprepare
2012-05-28 14:51 ` Mark Brown
@ 2012-05-28 15:21 ` Fabio Estevam
2012-05-28 15:24 ` Mark Brown
0 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-05-28 15:21 UTC (permalink / raw)
To: Mark Brown; +Cc: Fabio Estevam, alsa-devel, shawn.guo, kernel
Hi Shawn,
On Mon, May 28, 2012 at 11:51 AM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Fri, May 25, 2012 at 08:14:56PM -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Prepare the clock before enabling it.
>
> Applied, thanks.
With this patch applied I have just realized the following (only
during the first 'aplay', subsequent 'aplay's do not show it):
root@freescale /home$ aplay audio48k16S.wav
Playing WAVE 'audio48k16S.wav' : Signed 16 bit Little Endian, Rate
48000 Hz, Stereo
[ 16.170000]
[ 16.170000] =========================================================
[ 16.170000] [ INFO: possible irq lock inversion dependency detected ]
[ 16.170000] 3.4.0-next-20120524-00008-g5e6603c-dirty #962 Not tainted
[ 16.170000] ---------------------------------------------------------
[ 16.170000] swapper/0 just changed the state of lock:
[ 16.170000] (&(&substream->self_group.lock)->rlock){..-...}, at:
[<c022fda8>] snd_pcm_period_elapsed+0x34/0xd0
[ 16.170000] but this lock took another, SOFTIRQ-unsafe lock in the past:
[ 16.170000] (prepare_lock){+.+...}
[ 16.170000]
[ 16.170000] and interrupts could create inverse lock ordering between them.
[ 16.170000]
[ 16.170000]
[ 16.170000] other info that might help us debug this:
[ 16.170000] Possible interrupt unsafe locking scenario:
[ 16.170000]
[ 16.170000] CPU0 CPU1
[ 16.170000] ---- ----
[ 16.170000] lock(prepare_lock);
[ 16.170000] local_irq_disable();
[ 16.170000]
lock(&(&substream->self_group.lock)->rlock);
[ 16.170000] lock(prepare_lock);
[ 16.170000] <Interrupt>
[ 16.170000] lock(&(&substream->self_group.lock)->rlock);
[ 16.170000]
[ 16.170000] *** DEADLOCK ***
[ 16.170000]
[ 16.170000] 1 lock held by swapper/0:
[ 16.170000] #0: (snd_pcm_link_rwlock){...-..}, at: [<c022fd98>]
snd_pcm_period_elapsed+0x24/0xd0
[ 16.170000]
[ 16.170000] the shortest dependencies between 2nd lock and 1st lock:
[ 16.170000] -> (prepare_lock){+.+...} ops: 110 {
[ 16.170000] HARDIRQ-ON-W at:
[ 16.170000] [<c005bc10>] __lock_acquire+0xb04/0x1b98
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e4c20>] mutex_lock_nested+0x54/0x29c
[ 16.170000] [<c021d250>] clk_prepare+0x18/0x38
[ 16.170000] [<c04029f8>] mxs_machine_init+0x30/0x74
[ 16.170000] [<c03ff7b8>] customize_machine+0x1c/0x28
[ 16.170000] [<c000874c>] do_one_initcall+0x30/0x17c
[ 16.170000] [<c03fe340>] kernel_init+0x114/0x1f0
[ 16.170000] [<c001014c>] kernel_thread_exit+0x0/0x8
[ 16.170000] SOFTIRQ-ON-W at:
[ 16.170000] [<c005bc34>] __lock_acquire+0xb28/0x1b98
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e4c20>] mutex_lock_nested+0x54/0x29c
[ 16.170000] [<c021d250>] clk_prepare+0x18/0x38
[ 16.170000] [<c04029f8>] mxs_machine_init+0x30/0x74
[ 16.170000] [<c03ff7b8>] customize_machine+0x1c/0x28
[ 16.170000] [<c000874c>] do_one_initcall+0x30/0x17c
[ 16.170000] [<c03fe340>] kernel_init+0x114/0x1f0
[ 16.170000] [<c001014c>] kernel_thread_exit+0x0/0x8
[ 16.170000] INITIAL USE at:
[ 16.170000] [<c005b4d4>] __lock_acquire+0x3c8/0x1b98
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e4c20>] mutex_lock_nested+0x54/0x29c
[ 16.170000] [<c021c7b8>] __clk_init+0x20/0x3e4
[ 16.170000] [<c021cc64>] clk_register+0xe8/0x1b0
[ 16.170000] [<c021d570>] clk_register_fixed_rate+0x8c/0xe0
[ 16.170000] [<c04107b8>] mx28_clocks_init+0x7c/0xdac
[ 16.170000] [<c0400270>] time_init+0x20/0x30
[ 16.170000] [<c03fe794>] start_kernel+0x1a0/0x2a0
[ 16.170000] [<40008040>] 0x40008040
[ 16.170000] }
[ 16.170000] ... key at: [<c044fb9c>] prepare_lock+0x38/0x48
[ 16.170000] ... acquired at:
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e4c20>] mutex_lock_nested+0x54/0x29c
[ 16.170000] [<c021d250>] clk_prepare+0x18/0x38
[ 16.170000] [<c024474c>] mxs_saif_trigger+0xd8/0x184
[ 16.170000] [<c023f8c0>] soc_pcm_trigger+0x94/0x9c
[ 16.170000] [<c0228804>] snd_pcm_do_start+0x28/0x2c
[ 16.170000] [<c0228718>] snd_pcm_action_single+0x38/0x78
[ 16.170000] [<c02306fc>] snd_pcm_lib_write1+0x2e4/0x340
[ 16.170000] [<c02307f8>] snd_pcm_lib_write+0x44/0x64
[ 16.170000] [<c022d0e0>] snd_pcm_playback_ioctl1+0xec/0x46c
[ 16.170000] [<c00d8834>] do_vfs_ioctl+0x7c/0x584
[ 16.170000] [<c00d8d74>] sys_ioctl+0x38/0x60
[ 16.170000] [<c000f180>] ret_fast_syscall+0x0/0x38
[ 16.170000]
[ 16.170000] -> (&(&substream->self_group.lock)->rlock){..-...} ops: 36 {
[ 16.170000] IN-SOFTIRQ-W at:
[ 16.170000] [<c005bbf4>] __lock_acquire+0xae8/0x1b98
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e67fc>] _raw_spin_lock+0x2c/0x3c
[ 16.170000] [<c022fda8>] snd_pcm_period_elapsed+0x34/0xd0
[ 16.170000] [<c01bed28>] mxs_dma_tasklet+0x18/0x1c
[ 16.170000] [<c00235e4>] tasklet_action+0xc8/0xd8
[ 16.170000] [<c0023b38>] __do_softirq+0xa0/0x1e0
[ 16.170000] [<c0023e10>] irq_exit+0x8c/0x94
[ 16.170000] [<c0010080>] handle_IRQ+0x34/0x84
[ 16.170000] [<c000edd8>] __irq_svc+0x38/0x60
[ 16.170000] [<c001029c>] default_idle+0x40/0x48
[ 16.170000] [<c00105b8>] cpu_idle+0x68/0xd0
[ 16.170000] [<c03fe854>] start_kernel+0x260/0x2a0
[ 16.170000] INITIAL USE at:
[ 16.170000] [<c005b4d4>] __lock_acquire+0x3c8/0x1b98
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e67fc>] _raw_spin_lock+0x2c/0x3c
[ 16.170000] [<c022978c>] snd_pcm_sync_ptr+0xb8/0x16c
[ 16.170000] [<c022c038>] snd_pcm_common_ioctl1+0x204/0xd48
[ 16.170000] [<c022d024>] snd_pcm_playback_ioctl1+0x30/0x46c
[ 16.170000] [<c00d8834>] do_vfs_ioctl+0x7c/0x584
[ 16.170000] [<c00d8d74>] sys_ioctl+0x38/0x60
[ 16.170000] [<c000f180>] ret_fast_syscall+0x0/0x38
[ 16.170000] }
[ 16.170000] ... key at: [<c099e694>] __key.25802+0x0/0x8
[ 16.170000] ... acquired at:
[ 16.170000] [<c005a030>] check_usage_forwards+0xa0/0x10c
[ 16.170000] [<c0059120>] mark_lock+0x1d4/0x62c
[ 16.170000] [<c005bbf4>] __lock_acquire+0xae8/0x1b98
[ 16.170000] [<c005cd44>] lock_acquire+0xa0/0x108
[ 16.170000] [<c02e67fc>] _raw_spin_lock+0x2c/0x3c
[ 16.170000] [<c022fda8>] snd_pcm_period_elapsed+0x34/0xd0
[ 16.170000] [<c01bed28>] mxs_dma_tasklet+0x18/0x1c
[ 16.170000] [<c00235e4>] tasklet_action+0xc8/0xd8
[ 16.170000] [<c0023b38>] __do_softirq+0xa0/0x1e0
[ 16.170000] [<c0023e10>] irq_exit+0x8c/0x94
[ 16.170000] [<c0010080>] handle_IRQ+0x34/0x84
[ 16.170000] [<c000edd8>] __irq_svc+0x38/0x60
[ 16.170000] [<c001029c>] default_idle+0x40/0x48
[ 16.170000] [<c00105b8>] cpu_idle+0x68/0xd0
[ 16.170000] [<c03fe854>] start_kernel+0x260/0x2a0
[ 16.170000]
[ 16.170000]
[ 16.170000] stack backtrace:
[ 16.170000] [<c00148f0>] (unwind_backtrace+0x0/0xf4) from
[<c0059f20>] (print_irq_inversion_bug+0x1a0/0x210)
[ 16.170000] [<c0059f20>] (print_irq_inversion_bug+0x1a0/0x210) from
[<c005a030>] (check_usage_forwards+0xa0/0x10c)
[ 16.170000] [<c005a030>] (check_usage_forwards+0xa0/0x10c) from
[<c0059120>] (mark_lock+0x1d4/0x62c)
[ 16.170000] [<c0059120>] (mark_lock+0x1d4/0x62c) from [<c005bbf4>]
(__lock_acquire+0xae8/0x1b98)
[ 16.170000] [<c005bbf4>] (__lock_acquire+0xae8/0x1b98) from
[<c005cd44>] (lock_acquire+0xa0/0x108)
[ 16.170000] [<c005cd44>] (lock_acquire+0xa0/0x108) from
[<c02e67fc>] (_raw_spin_lock+0x2c/0x3c)
[ 16.170000] [<c02e67fc>] (_raw_spin_lock+0x2c/0x3c) from
[<c022fda8>] (snd_pcm_period_elapsed+0x34/0xd0)
[ 16.170000] [<c022fda8>] (snd_pcm_period_elapsed+0x34/0xd0) from
[<c01bed28>] (mxs_dma_tasklet+0x18/0x1c)
[ 16.170000] [<c01bed28>] (mxs_dma_tasklet+0x18/0x1c) from
[<c00235e4>] (tasklet_action+0xc8/0xd8)
[ 16.170000] [<c00235e4>] (tasklet_action+0xc8/0xd8) from
[<c0023b38>] (__do_softirq+0xa0/0x1e0)
[ 16.170000] [<c0023b38>] (__do_softirq+0xa0/0x1e0) from
[<c0023e10>] (irq_exit+0x8c/0x94)
[ 16.170000] [<c0023e10>] (irq_exit+0x8c/0x94) from [<c0010080>]
(handle_IRQ+0x34/0x84)
[ 16.170000] [<c0010080>] (handle_IRQ+0x34/0x84) from [<c000edd8>]
(__irq_svc+0x38/0x60)
[ 16.170000] [<c000edd8>] (__irq_svc+0x38/0x60) from [<c001029c>]
(default_idle+0x40/0x48)
[ 16.170000] [<c001029c>] (default_idle+0x40/0x48) from [<c00105b8>]
(cpu_idle+0x68/0xd0)
[ 16.170000] [<c00105b8>] (cpu_idle+0x68/0xd0) from [<c03fe854>]
(start_kernel+0x260/0x2a0)
Will debug this, but any suggestion is appreaciated.
Thanks,
Fabio Estevam
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 15/15] ASoC: mxs-saif: Use clk_prepare_enable/clk_disable_unprepare
2012-05-28 15:21 ` Fabio Estevam
@ 2012-05-28 15:24 ` Mark Brown
0 siblings, 0 replies; 34+ messages in thread
From: Mark Brown @ 2012-05-28 15:24 UTC (permalink / raw)
To: Fabio Estevam; +Cc: Fabio Estevam, alsa-devel, shawn.guo, kernel
[-- Attachment #1.1: Type: text/plain, Size: 464 bytes --]
On Mon, May 28, 2012 at 12:21:01PM -0300, Fabio Estevam wrote:
> With this patch applied I have just realized the following (only
> during the first 'aplay', subsequent 'aplay's do not show it):
[Attempting to do stuff we shouldn't in hard IRQ context]
Is this not just a case of calling clk_prepare_and_enable() from atomic
context - the whole reason the two are split is that only _enable() can
be called in atomic context?
I'll discard this commit for now.
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/15] ata: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 02/15] ata: " Fabio Estevam
@ 2012-05-29 9:17 ` Sascha Hauer
2012-06-06 3:40 ` Fabio Estevam
0 siblings, 1 reply; 34+ messages in thread
From: Sascha Hauer @ 2012-05-29 9:17 UTC (permalink / raw)
To: Fabio Estevam; +Cc: kernel, shawn.guo, Fabio Estevam, Jeff Garzik, linux-ide
On Fri, May 25, 2012 at 08:14:43PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Jeff Garzik <jgarzik@pobox.com>
> Cc: <linux-ide@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/ata/pata_imx.c | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/ata/pata_imx.c b/drivers/ata/pata_imx.c
> index c5af97f..87bb05b 100644
> --- a/drivers/ata/pata_imx.c
> +++ b/drivers/ata/pata_imx.c
> @@ -118,7 +118,7 @@ static int __devinit pata_imx_probe(struct platform_device *pdev)
> return PTR_ERR(priv->clk);
> }
>
> - clk_enable(priv->clk);
> + clk_prepare_enable(priv->clk);
>
> host = ata_host_alloc(&pdev->dev, 1);
> if (!host)
> @@ -162,7 +162,7 @@ static int __devinit pata_imx_probe(struct platform_device *pdev)
> &pata_imx_sht);
>
> free_priv:
> - clk_disable(priv->clk);
> + clk_disable_unprepare(priv->clk);
> clk_put(priv->clk);
> return -ENOMEM;
> }
> @@ -176,7 +176,7 @@ static int __devexit pata_imx_remove(struct platform_device *pdev)
>
> __raw_writel(0, priv->host_regs + PATA_IMX_ATA_INT_EN);
>
> - clk_disable(priv->clk);
> + clk_disable_unprepare(priv->clk);
> clk_put(priv->clk);
>
> return 0;
> @@ -194,7 +194,7 @@ static int pata_imx_suspend(struct device *dev)
> __raw_writel(0, priv->host_regs + PATA_IMX_ATA_INT_EN);
> priv->ata_ctl =
> __raw_readl(priv->host_regs + PATA_IMX_ATA_CONTROL);
> - clk_disable(priv->clk);
> + clk_disable_unprepare(priv->clk);
> }
>
> return ret;
> @@ -205,7 +205,7 @@ static int pata_imx_resume(struct device *dev)
> struct ata_host *host = dev_get_drvdata(dev);
> struct pata_imx_priv *priv = host->private_data;
>
> - clk_enable(priv->clk);
> + clk_prepare_enable(priv->clk);
>
> __raw_writel(priv->ata_ctl, priv->host_regs + PATA_IMX_ATA_CONTROL);
>
> --
> 1.7.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v2 03/15] hw_random: mxc-rnga: Use clk_prepare_enable/clk_disable_unprepare
2012-05-26 16:03 ` [PATCH v2 03/15] hw_random: mxc-rnga: " Fabio Estevam
@ 2012-05-29 9:17 ` Sascha Hauer
2012-06-06 3:41 ` Fabio Estevam
0 siblings, 1 reply; 34+ messages in thread
From: Sascha Hauer @ 2012-05-29 9:17 UTC (permalink / raw)
To: Fabio Estevam; +Cc: kernel, shawn.guo, Fabio Estevam, Herbert Xu, linux-kernel
On Sat, May 26, 2012 at 01:03:52PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> Cc: <linux-kernel@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> Changes since v1:
> - Add missing clk_disable_unprepare(clk) in the remove path
>
> drivers/char/hw_random/mxc-rnga.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/mxc-rnga.c
> index 187c6be..430582c 100644
> --- a/drivers/char/hw_random/mxc-rnga.c
> +++ b/drivers/char/hw_random/mxc-rnga.c
> @@ -154,7 +154,7 @@ static int __init mxc_rnga_probe(struct platform_device *pdev)
> goto out;
> }
>
> - clk_enable(clk);
> + clk_prepare_enable(clk);
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> if (!res) {
> @@ -196,7 +196,7 @@ err_ioremap:
> release_mem_region(res->start, resource_size(res));
>
> err_region:
> - clk_disable(clk);
> + clk_disable_unprepare(clk);
> clk_put(clk);
>
> out:
> @@ -215,7 +215,7 @@ static int __exit mxc_rnga_remove(struct platform_device *pdev)
>
> release_mem_region(res->start, resource_size(res));
>
> - clk_disable(clk);
> + clk_disable_unprepare(clk);
> clk_put(clk);
>
> return 0;
> --
> 1.7.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 05/15] keyboard: imx_keypad: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 05/15] keyboard: imx_keypad: " Fabio Estevam
@ 2012-05-29 9:18 ` Sascha Hauer
2012-06-06 3:41 ` Fabio Estevam
0 siblings, 1 reply; 34+ messages in thread
From: Sascha Hauer @ 2012-05-29 9:18 UTC (permalink / raw)
To: Fabio Estevam
Cc: kernel, shawn.guo, Fabio Estevam, Dmitry Torokhov, linux-input
On Fri, May 25, 2012 at 08:14:46PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: <linux-input@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/input/keyboard/imx_keypad.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/input/keyboard/imx_keypad.c b/drivers/input/keyboard/imx_keypad.c
> index 6ee7421..9d57945 100644
> --- a/drivers/input/keyboard/imx_keypad.c
> +++ b/drivers/input/keyboard/imx_keypad.c
> @@ -378,7 +378,7 @@ static void imx_keypad_close(struct input_dev *dev)
> imx_keypad_inhibit(keypad);
>
> /* Disable clock unit */
> - clk_disable(keypad->clk);
> + clk_disable_unprepare(keypad->clk);
> }
>
> static int imx_keypad_open(struct input_dev *dev)
> @@ -391,7 +391,7 @@ static int imx_keypad_open(struct input_dev *dev)
> keypad->enabled = true;
>
> /* Enable the kpp clock */
> - clk_enable(keypad->clk);
> + clk_prepare_enable(keypad->clk);
> imx_keypad_config(keypad);
>
> /* Sanity control, not all the rows must be actived now. */
> @@ -581,7 +581,7 @@ static int imx_kbd_suspend(struct device *dev)
> mutex_lock(&input_dev->mutex);
>
> if (input_dev->users)
> - clk_disable(kbd->clk);
> + clk_disable_unprepare(kbd->clk);
>
> mutex_unlock(&input_dev->mutex);
>
> @@ -603,7 +603,7 @@ static int imx_kbd_resume(struct device *dev)
> mutex_lock(&input_dev->mutex);
>
> if (input_dev->users)
> - clk_enable(kbd->clk);
> + clk_prepare_enable(kbd->clk);
>
> mutex_unlock(&input_dev->mutex);
>
> --
> 1.7.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/15] video: mx1_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 06/15] video: mx1_camera: " Fabio Estevam
@ 2012-05-29 9:20 ` Sascha Hauer
2012-06-06 3:43 ` Fabio Estevam
0 siblings, 1 reply; 34+ messages in thread
From: Sascha Hauer @ 2012-05-29 9:20 UTC (permalink / raw)
To: Fabio Estevam
Cc: kernel, shawn.guo, Fabio Estevam, Guennadi Liakhovetski,
linux-media
On Fri, May 25, 2012 at 08:14:47PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> Cc: <linux-media@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/media/video/mx1_camera.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c
> index 4296a83..dc58084 100644
> --- a/drivers/media/video/mx1_camera.c
> +++ b/drivers/media/video/mx1_camera.c
> @@ -402,7 +402,7 @@ static void mx1_camera_activate(struct mx1_camera_dev *pcdev)
>
> dev_dbg(pcdev->icd->parent, "Activate device\n");
>
> - clk_enable(pcdev->clk);
> + clk_prepare_enable(pcdev->clk);
>
> /* enable CSI before doing anything else */
> __raw_writel(csicr1, pcdev->base + CSICR1);
> @@ -421,7 +421,7 @@ static void mx1_camera_deactivate(struct mx1_camera_dev *pcdev)
> /* Disable all CSI interface */
> __raw_writel(0x00, pcdev->base + CSICR1);
>
> - clk_disable(pcdev->clk);
> + clk_disable_unprepare(pcdev->clk);
> }
>
> /*
> --
> 1.7.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 07/15] video: mx2_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 07/15] video: mx2_camera: " Fabio Estevam
@ 2012-05-29 9:21 ` Sascha Hauer
0 siblings, 0 replies; 34+ messages in thread
From: Sascha Hauer @ 2012-05-29 9:21 UTC (permalink / raw)
To: Fabio Estevam
Cc: kernel, shawn.guo, Fabio Estevam, Guennadi Liakhovetski,
linux-media
On Fri, May 25, 2012 at 08:14:48PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> Cc: <linux-media@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/media/video/mx2_camera.c | 12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
> index ded26b7..71b67a3 100644
> --- a/drivers/media/video/mx2_camera.c
> +++ b/drivers/media/video/mx2_camera.c
> @@ -402,7 +402,7 @@ static void mx2_camera_deactivate(struct mx2_camera_dev *pcdev)
> {
> unsigned long flags;
>
> - clk_disable(pcdev->clk_csi);
> + clk_disable_unprepare(pcdev->clk_csi);
> writel(0, pcdev->base_csi + CSICR1);
> if (cpu_is_mx27()) {
> writel(0, pcdev->base_emma + PRP_CNTL);
> @@ -430,7 +430,7 @@ static int mx2_camera_add_device(struct soc_camera_device *icd)
> if (pcdev->icd)
> return -EBUSY;
>
> - ret = clk_enable(pcdev->clk_csi);
> + ret = clk_prepare_enable(pcdev->clk_csi);
> if (ret < 0)
> return ret;
>
> @@ -1664,7 +1664,7 @@ static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev)
> goto exit_free_irq;
> }
>
> - clk_enable(pcdev->clk_emma);
> + clk_prepare_enable(pcdev->clk_emma);
>
> err = mx27_camera_emma_prp_reset(pcdev);
> if (err)
> @@ -1673,7 +1673,7 @@ static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev)
> return err;
>
> exit_clk_emma_put:
> - clk_disable(pcdev->clk_emma);
> + clk_disable_unprepare(pcdev->clk_emma);
> clk_put(pcdev->clk_emma);
> exit_free_irq:
> free_irq(pcdev->irq_emma, pcdev);
> @@ -1810,7 +1810,7 @@ exit_free_emma:
> eallocctx:
> if (cpu_is_mx27()) {
> free_irq(pcdev->irq_emma, pcdev);
> - clk_disable(pcdev->clk_emma);
> + clk_disable_unprepare(pcdev->clk_emma);
> clk_put(pcdev->clk_emma);
> iounmap(pcdev->base_emma);
> release_mem_region(pcdev->res_emma->start, resource_size(pcdev->res_emma));
> @@ -1850,7 +1850,7 @@ static int __devexit mx2_camera_remove(struct platform_device *pdev)
> iounmap(pcdev->base_csi);
>
> if (cpu_is_mx27()) {
> - clk_disable(pcdev->clk_emma);
> + clk_disable_unprepare(pcdev->clk_emma);
> clk_put(pcdev->clk_emma);
> iounmap(pcdev->base_emma);
> res = pcdev->res_emma;
> --
> 1.7.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 08/15] video: mx2_emmaprp: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 08/15] video: mx2_emmaprp: " Fabio Estevam
@ 2012-05-29 9:21 ` Sascha Hauer
0 siblings, 0 replies; 34+ messages in thread
From: Sascha Hauer @ 2012-05-29 9:21 UTC (permalink / raw)
To: Fabio Estevam
Cc: kernel, shawn.guo, Fabio Estevam, Guennadi Liakhovetski,
linux-media
On Fri, May 25, 2012 at 08:14:49PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> Cc: <linux-media@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/media/video/mx2_emmaprp.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/video/mx2_emmaprp.c b/drivers/media/video/mx2_emmaprp.c
> index 0bd5815..b364557 100644
> --- a/drivers/media/video/mx2_emmaprp.c
> +++ b/drivers/media/video/mx2_emmaprp.c
> @@ -800,7 +800,7 @@ static int emmaprp_open(struct file *file)
> return ret;
> }
>
> - clk_enable(pcdev->clk_emma);
> + clk_prepare_enable(pcdev->clk_emma);
> ctx->q_data[V4L2_M2M_SRC].fmt = &formats[1];
> ctx->q_data[V4L2_M2M_DST].fmt = &formats[0];
>
> @@ -816,7 +816,7 @@ static int emmaprp_release(struct file *file)
>
> dprintk(pcdev, "Releasing instance %p\n", ctx);
>
> - clk_disable(pcdev->clk_emma);
> + clk_disable_unprepare(pcdev->clk_emma);
> v4l2_m2m_ctx_release(ctx->m2m_ctx);
> kfree(ctx);
>
> --
> 1.7.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/15] ata: Use clk_prepare_enable/clk_disable_unprepare
2012-05-29 9:17 ` Sascha Hauer
@ 2012-06-06 3:40 ` Fabio Estevam
2012-06-08 15:49 ` Jeff Garzik
0 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-06-06 3:40 UTC (permalink / raw)
To: Sascha Hauer; +Cc: kernel, shawn.guo, Fabio Estevam, Jeff Garzik, linux-ide
Jeff,
On Tue, May 29, 2012 at 6:17 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Fri, May 25, 2012 at 08:14:43PM -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Prepare the clock before enabling it.
>>
>> Cc: Jeff Garzik <jgarzik@pobox.com>
>> Cc: <linux-ide@vger.kernel.org>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>
> Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Can this be applied?
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v2 03/15] hw_random: mxc-rnga: Use clk_prepare_enable/clk_disable_unprepare
2012-05-29 9:17 ` Sascha Hauer
@ 2012-06-06 3:41 ` Fabio Estevam
2012-06-06 5:24 ` Herbert Xu
0 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-06-06 3:41 UTC (permalink / raw)
To: Sascha Hauer; +Cc: kernel, shawn.guo, Fabio Estevam, Herbert Xu, linux-kernel
Herbert,
On Tue, May 29, 2012 at 6:17 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Sat, May 26, 2012 at 01:03:52PM -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Prepare the clock before enabling it.
>>
>> Cc: Herbert Xu <herbert@gondor.apana.org.au>
>> Cc: <linux-kernel@vger.kernel.org>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>
> Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Can this be applied?
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 05/15] keyboard: imx_keypad: Use clk_prepare_enable/clk_disable_unprepare
2012-05-29 9:18 ` Sascha Hauer
@ 2012-06-06 3:41 ` Fabio Estevam
0 siblings, 0 replies; 34+ messages in thread
From: Fabio Estevam @ 2012-06-06 3:41 UTC (permalink / raw)
To: Sascha Hauer
Cc: kernel, shawn.guo, Fabio Estevam, Dmitry Torokhov, linux-input
Dmitry,
On Tue, May 29, 2012 at 6:18 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Fri, May 25, 2012 at 08:14:46PM -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Prepare the clock before enabling it.
>>
>> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>> Cc: <linux-input@vger.kernel.org>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>
> Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Can this be applied?
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/15] video: mx1_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-05-29 9:20 ` Sascha Hauer
@ 2012-06-06 3:43 ` Fabio Estevam
2012-06-06 16:04 ` Guennadi Liakhovetski
0 siblings, 1 reply; 34+ messages in thread
From: Fabio Estevam @ 2012-06-06 3:43 UTC (permalink / raw)
To: Sascha Hauer
Cc: kernel, shawn.guo, Fabio Estevam, Guennadi Liakhovetski,
linux-media
Guennadi,
On Tue, May 29, 2012 at 6:20 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Fri, May 25, 2012 at 08:14:47PM -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Prepare the clock before enabling it.
>>
>> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
>> Cc: <linux-media@vger.kernel.org>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>
> Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Can patches 6, 7 and 8 be applied?
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v2 03/15] hw_random: mxc-rnga: Use clk_prepare_enable/clk_disable_unprepare
2012-06-06 3:41 ` Fabio Estevam
@ 2012-06-06 5:24 ` Herbert Xu
0 siblings, 0 replies; 34+ messages in thread
From: Herbert Xu @ 2012-06-06 5:24 UTC (permalink / raw)
To: Fabio Estevam
Cc: Sascha Hauer, kernel, shawn.guo, Fabio Estevam, linux-kernel
On Wed, Jun 06, 2012 at 12:41:17AM -0300, Fabio Estevam wrote:
> Herbert,
>
> On Tue, May 29, 2012 at 6:17 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Sat, May 26, 2012 at 01:03:52PM -0300, Fabio Estevam wrote:
> >> From: Fabio Estevam <fabio.estevam@freescale.com>
> >>
> >> Prepare the clock before enabling it.
> >>
> >> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> >> Cc: <linux-kernel@vger.kernel.org>
> >> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> >
> > Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
>
> Can this be applied?
Your patch is in my queue. I'm at LinuxCon Japan right now,
so I'll be applying them later this week.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/15] video: mx1_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-06-06 3:43 ` Fabio Estevam
@ 2012-06-06 16:04 ` Guennadi Liakhovetski
2012-06-06 16:37 ` Fabio Estevam
0 siblings, 1 reply; 34+ messages in thread
From: Guennadi Liakhovetski @ 2012-06-06 16:04 UTC (permalink / raw)
To: Fabio Estevam; +Cc: Sascha Hauer, kernel, shawn.guo, Fabio Estevam, linux-media
On Wed, 6 Jun 2012, Fabio Estevam wrote:
> Guennadi,
>
> On Tue, May 29, 2012 at 6:20 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Fri, May 25, 2012 at 08:14:47PM -0300, Fabio Estevam wrote:
> >> From: Fabio Estevam <fabio.estevam@freescale.com>
> >>
> >> Prepare the clock before enabling it.
> >>
> >> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> >> Cc: <linux-media@vger.kernel.org>
> >> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> >
> > Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
>
> Can patches 6, 7 and 8 be applied?
Yes, I'll pick up #6 and 7. #8 is not for me - mx2_emmaprp is not an
soc-camera driver, I'm not maintaining it. I understand, these patches are
not really bug-fixes (is clk_prepare() a NOP on mx*?) and can wait until
3.6? Or should they be considered correctness fixes and go into 3.5?
Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 06/15] video: mx1_camera: Use clk_prepare_enable/clk_disable_unprepare
2012-06-06 16:04 ` Guennadi Liakhovetski
@ 2012-06-06 16:37 ` Fabio Estevam
0 siblings, 0 replies; 34+ messages in thread
From: Fabio Estevam @ 2012-06-06 16:37 UTC (permalink / raw)
To: Guennadi Liakhovetski
Cc: Sascha Hauer, kernel, shawn.guo, Fabio Estevam, linux-media
Hi Guennadi,
On Wed, Jun 6, 2012 at 1:04 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> Yes, I'll pick up #6 and 7. #8 is not for me - mx2_emmaprp is not an
> soc-camera driver, I'm not maintaining it. I understand, these patches are
> not really bug-fixes (is clk_prepare() a NOP on mx*?) and can wait until
> 3.6? Or should they be considered correctness fixes and go into 3.5?
On i.MX we have transitioned to the common clock framework and my
understanding is that we need the
clk_prepare_enable/clk_disable_unprepare changes now. I experienced
some kernel oops in some drivers that were not converted, so this
patch series aim to address the clock conversion for the remaining imx
drivers.
I think this is 3.5 material.
Sascha, would you agree?
Thanks,
Fabio Estevam
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 02/15] ata: Use clk_prepare_enable/clk_disable_unprepare
2012-06-06 3:40 ` Fabio Estevam
@ 2012-06-08 15:49 ` Jeff Garzik
0 siblings, 0 replies; 34+ messages in thread
From: Jeff Garzik @ 2012-06-08 15:49 UTC (permalink / raw)
To: Fabio Estevam; +Cc: Sascha Hauer, kernel, shawn.guo, Fabio Estevam, linux-ide
On 06/05/2012 11:40 PM, Fabio Estevam wrote:
> Jeff,
>
> On Tue, May 29, 2012 at 6:17 AM, Sascha Hauer<s.hauer@pengutronix.de> wrote:
>> On Fri, May 25, 2012 at 08:14:43PM -0300, Fabio Estevam wrote:
>>> From: Fabio Estevam<fabio.estevam@freescale.com>
>>>
>>> Prepare the clock before enabling it.
>>>
>>> Cc: Jeff Garzik<jgarzik@pobox.com>
>>> Cc:<linux-ide@vger.kernel.org>
>>> Signed-off-by: Fabio Estevam<fabio.estevam@freescale.com>
>>
>> Acked-by: Sascha Hauer<s.hauer@pengutronix.de>
>
> Can this be applied?
Just got back from Europe, and will get this in ASAP...
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 11/15] serial: mxs-auart: Use clk_prepare_enable/clk_disable_unprepare
2012-05-25 23:14 ` [PATCH 11/15] serial: mxs-auart: " Fabio Estevam
@ 2012-06-11 2:36 ` Shawn Guo
0 siblings, 0 replies; 34+ messages in thread
From: Shawn Guo @ 2012-06-11 2:36 UTC (permalink / raw)
To: Fabio Estevam
Cc: kernel, Fabio Estevam, Alan Cox, Greg Kroah-Hartman, linux-serial
On Fri, May 25, 2012 at 08:14:52PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Prepare the clock before enabling it.
>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: <linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> drivers/tty/serial/mxs-auart.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index ec56d83..c109642 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -552,7 +552,7 @@ auart_console_write(struct console *co, const char *str, unsigned int count)
> s = auart_port[co->index];
> port = &s->port;
>
> - clk_enable(s->clk);
> + clk_prepare_enable(s->clk);
>
> /* First save the CR then disable the interrupts */
> old_ctrl2 = readl(port->membase + AUART_CTRL2);
> @@ -578,7 +578,7 @@ auart_console_write(struct console *co, const char *str, unsigned int count)
> writel(old_ctrl0, port->membase + AUART_CTRL0);
> writel(old_ctrl2, port->membase + AUART_CTRL2);
>
> - clk_disable(s->clk);
> + clk_disable_unprepare(s->clk);
> }
>
> static void __init
> --
> 1.7.1
>
No, clk_prepare() should not be called in auart_console_write() which
is an atomic context. However it reminds me that auart_console_setup()
needs a fix as below.
Regards,
Shawn
--8<---
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..a3bb06b 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -638,18 +638,16 @@ auart_console_setup(struct console *co, char *options)
if (!s)
return -ENODEV;
- clk_prepare_enable(s->clk);
+ clk_prepare(s->clk);
+ if (ret)
+ return ret;
if (options)
uart_parse_options(options, &baud, &parity, &bits, &flow);
else
auart_console_get_options(&s->port, &baud, &parity, &bits);
- ret = uart_set_options(&s->port, co, baud, parity, bits, flow);
-
- clk_disable_unprepare(s->clk);
-
- return ret;
+ return uart_set_options(&s->port, co, baud, parity, bits, flow);
}
static struct console auart_console = {
^ permalink raw reply related [flat|nested] 34+ messages in thread
end of thread, other threads:[~2012-06-11 2:15 UTC | newest]
Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-25 23:14 [PATCH 01/15] ARM: mx5: Use clk_prepare_enable/clk_disable_unprepare Fabio Estevam
2012-05-25 23:14 ` [PATCH 02/15] ata: " Fabio Estevam
2012-05-29 9:17 ` Sascha Hauer
2012-06-06 3:40 ` Fabio Estevam
2012-06-08 15:49 ` Jeff Garzik
2012-05-25 23:14 ` [PATCH 03/15] hw_random: mxc-rnga: " Fabio Estevam
2012-05-26 11:29 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 04/15] dma: imx-sdma: " Fabio Estevam
2012-05-26 11:30 ` Sascha Hauer
2012-05-26 16:03 ` [PATCH v2 03/15] hw_random: mxc-rnga: " Fabio Estevam
2012-05-29 9:17 ` Sascha Hauer
2012-06-06 3:41 ` Fabio Estevam
2012-06-06 5:24 ` Herbert Xu
2012-05-25 23:14 ` [PATCH 05/15] keyboard: imx_keypad: " Fabio Estevam
2012-05-29 9:18 ` Sascha Hauer
2012-06-06 3:41 ` Fabio Estevam
2012-05-25 23:14 ` [PATCH 06/15] video: mx1_camera: " Fabio Estevam
2012-05-29 9:20 ` Sascha Hauer
2012-06-06 3:43 ` Fabio Estevam
2012-06-06 16:04 ` Guennadi Liakhovetski
2012-06-06 16:37 ` Fabio Estevam
2012-05-25 23:14 ` [PATCH 07/15] video: mx2_camera: " Fabio Estevam
2012-05-29 9:21 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 08/15] video: mx2_emmaprp: " Fabio Estevam
2012-05-29 9:21 ` Sascha Hauer
2012-05-25 23:14 ` [PATCH 09/15] nand: mxc_nand: " Fabio Estevam
2012-05-27 12:36 ` Artem Bityutskiy
2012-05-25 23:14 ` [PATCH 11/15] serial: mxs-auart: " Fabio Estevam
2012-06-11 2:36 ` Shawn Guo
2012-05-25 23:14 ` [PATCH 15/15] ASoC: mxs-saif: " Fabio Estevam
2012-05-28 14:51 ` Mark Brown
2012-05-28 15:21 ` Fabio Estevam
2012-05-28 15:24 ` Mark Brown
2012-05-26 11:28 ` [PATCH 01/15] ARM: mx5: " Sascha Hauer
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.