Re: [PATCH 1/2] hw_random: mxc-rnga: Adapt clocks to new i.mx clock framework

2012-07-27 Thread Fabio Estevam
On Mon, Jul 9, 2012 at 4:41 AM, Sascha Hauer  wrote:

> Uhh, that's a driver bug that should be fixed. Although right now there
> is no reference counting for clocks, the driver should keep the clk
> internally instead of simply calling clk_get whenever it needs access to
> a clk.

Yes, I just sent a fix for this.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/2] hw_random: mxc-rnga: Adapt clocks to new i.mx clock framework

2012-07-27 Thread Fabio Estevam
On Mon, Jul 9, 2012 at 4:41 AM, Sascha Hauer s.ha...@pengutronix.de wrote:

 Uhh, that's a driver bug that should be fixed. Although right now there
 is no reference counting for clocks, the driver should keep the clk
 internally instead of simply calling clk_get whenever it needs access to
 a clk.

Yes, I just sent a fix for this.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/2] hw_random: mxc-rnga: Adapt clocks to new i.mx clock framework

2012-07-09 Thread Sascha Hauer
On Fri, Jul 06, 2012 at 05:20:19PM -0300, Fabio Estevam wrote:
> Cc: Theodore Ts'o 
> Cc: Herbert Xu  
> Cc: 
> Signed-off-by: Fabio Estevam 
> ---
>  drivers/char/hw_random/mxc-rnga.c |8 
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/char/hw_random/mxc-rnga.c 
> b/drivers/char/hw_random/mxc-rnga.c
> index 85074de..c49c0b8 100644
> --- a/drivers/char/hw_random/mxc-rnga.c
> +++ b/drivers/char/hw_random/mxc-rnga.c
> @@ -152,14 +152,14 @@ static int __init mxc_rnga_probe(struct platform_device 
> *pdev)
>   if (rng_dev)
>   return -EBUSY;
>  
> - clk = clk_get(>dev, "rng");
> + clk = clk_get(>dev, NULL);
>   if (IS_ERR(clk)) {
>   dev_err(>dev, "Could not get rng_clk!\n");
>   err = PTR_ERR(clk);
>   goto out;
>   }
>  
> - clk_enable(clk);
> + clk_prepare_enable(clk);
>  
>   res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>   if (!res) {
> @@ -201,7 +201,7 @@ err_ioremap:
>   release_mem_region(res->start, resource_size(res));
>  
>  err_region:
> - clk_disable(clk);
> + clk_disable_unprepare(clk);
>   clk_put(clk);
>  
>  out:
> @@ -212,7 +212,7 @@ static int __exit mxc_rnga_remove(struct platform_device 
> *pdev)
>  {
>   struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>   void __iomem *rng_base = (void __iomem *)mxc_rnga.priv;
> - struct clk *clk = clk_get(>dev, "rng");
> + struct clk *clk = clk_get(>dev, NULL);

Uhh, that's a driver bug that should be fixed. Although right now there
is no reference counting for clocks, the driver should keep the clk
internally instead of simply calling clk_get whenever it needs access to
a clk.

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- |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/2] hw_random: mxc-rnga: Adapt clocks to new i.mx clock framework

2012-07-09 Thread Sascha Hauer
On Fri, Jul 06, 2012 at 05:20:19PM -0300, Fabio Estevam wrote:
 Cc: Theodore Ts'o ty...@mit.edu
 Cc: Herbert Xu herb...@gondor.apana.org.au 
 Cc: linux-kernel@vger.kernel.org
 Signed-off-by: Fabio Estevam fabio.este...@freescale.com
 ---
  drivers/char/hw_random/mxc-rnga.c |8 
  1 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/char/hw_random/mxc-rnga.c 
 b/drivers/char/hw_random/mxc-rnga.c
 index 85074de..c49c0b8 100644
 --- a/drivers/char/hw_random/mxc-rnga.c
 +++ b/drivers/char/hw_random/mxc-rnga.c
 @@ -152,14 +152,14 @@ static int __init mxc_rnga_probe(struct platform_device 
 *pdev)
   if (rng_dev)
   return -EBUSY;
  
 - clk = clk_get(pdev-dev, rng);
 + clk = clk_get(pdev-dev, NULL);
   if (IS_ERR(clk)) {
   dev_err(pdev-dev, Could not get rng_clk!\n);
   err = PTR_ERR(clk);
   goto out;
   }
  
 - clk_enable(clk);
 + clk_prepare_enable(clk);
  
   res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   if (!res) {
 @@ -201,7 +201,7 @@ err_ioremap:
   release_mem_region(res-start, resource_size(res));
  
  err_region:
 - clk_disable(clk);
 + clk_disable_unprepare(clk);
   clk_put(clk);
  
  out:
 @@ -212,7 +212,7 @@ static int __exit mxc_rnga_remove(struct platform_device 
 *pdev)
  {
   struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   void __iomem *rng_base = (void __iomem *)mxc_rnga.priv;
 - struct clk *clk = clk_get(pdev-dev, rng);
 + struct clk *clk = clk_get(pdev-dev, NULL);

Uhh, that's a driver bug that should be fixed. Although right now there
is no reference counting for clocks, the driver should keep the clk
internally instead of simply calling clk_get whenever it needs access to
a clk.

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- |
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 1/2] hw_random: mxc-rnga: Adapt clocks to new i.mx clock framework

2012-07-06 Thread Fabio Estevam
Adapt clocks to the new i.mx clock framework and fix the following warning:
 
[ cut here ]
WARNING: at drivers/clk/clk.c:511 __clk_enable+0x9c/0xac()  
Modules linked in:  
Backtrace:  
[<800124c8>] (dump_backtrace+0x0/0x10c) from [<804172dc>] (dump_stack+0x18/0x1c)
 r7:0009 r6:01ff r5:8032cb50 r4:
[<804172c4>] (dump_stack+0x0/0x1c) from [<80021834>] (warn_slowpath_common+0x54)
[<800217e0>] (warn_slowpath_common+0x0/0x6c) from [<80021870>] (warn_slowpath_n)
 r9:80581cac r8:8700a9c0 r7:805ab070 r6:8013 r5:806133d4
r4:8700a9c0 
[<8002184c>] (warn_slowpath_null+0x0/0x2c) from [<8032cb50>] (__clk_enable+0x9c)
[<8032cab4>] (__clk_enable+0x0/0xac) from [<8032cb88>] (clk_enable+0x28/0x44)   
 r5:806133d4 r4:8700a9c0
[<8032cb60>] (clk_enable+0x0/0x44) from [<80560f14>] (mxc_rnga_probe+0x68/0x164)
 r7:805ab070 r6:8706ec00 r5:80611314 r4:
[<80560eac>] (mxc_rnga_probe+0x0/0x164) from [<8025914c>] (platform_drv_probe+0)
[<8025912c>] (platform_drv_probe+0x0/0x24) from [<80257c7c>] (driver_probe_devi)
[<80257bfc>] (driver_probe_device+0x0/0x204) from [<80257e94>] (__driver_attach)
 r9:80581cac r8:008e r7: r6:8706ec3c r5:805ab070
r4:8706ec08 
[<80257e00>] (__driver_attach+0x0/0x98) from [<8025642c>] (bus_for_each_dev+0x6)
 r7: r6:80257e00 r5:87035e98 r4:805ab070
[<802563c4>] (bus_for_each_dev+0x0/0x94) from [<80257adc>] (driver_attach+0x20/)
 r7: r6:873f2380 r5:805ab338 r4:805ab070
[<80257abc>] (driver_attach+0x0/0x28) from [<80256d50>] (bus_add_driver+0x18c/0)
[<80256bc4>] (bus_add_driver+0x0/0x268) from [<802584c4>] (driver_register+0x80)
[<80258444>] (driver_register+0x0/0x134) from [<802594f4>] (platform_driver_reg)
 r7: r6:805c2e00 r5:0007 r4:805ab05c
[<802594a8>] (platform_driver_register+0x0/0x60) from [<80259528>] (platform_dr)
[<80259508>] (platform_driver_probe+0x0/0xa4) from [<80560ea0>] (mod_init+0x18/)
 r7: r6:805c2e00 r5:0007 r4:87034000
[<80560e88>] (mod_init+0x0/0x24) from [<800086b4>] (do_one_initcall+0x40/0x194) 
[<80008674>] (do_one_initcall+0x0/0x194) from [<8053d3f4>] (kernel_init+0xfc/0x)
[<8053d2f8>] (kernel_init+0x0/0x1cc) from [<80027190>] (do_exit+0x0/0x7ec)  
---[ end trace 4198eed02050f461 ]---
mxc_rnga mxc_rnga: MXC RNGA Registered

Cc: Theodore Ts'o 
Cc: Herbert Xu  
Cc: 
Signed-off-by: Fabio Estevam 
---
 drivers/char/hw_random/mxc-rnga.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/char/hw_random/mxc-rnga.c 
b/drivers/char/hw_random/mxc-rnga.c
index 85074de..c49c0b8 100644
--- a/drivers/char/hw_random/mxc-rnga.c
+++ b/drivers/char/hw_random/mxc-rnga.c
@@ -152,14 +152,14 @@ static int __init mxc_rnga_probe(struct platform_device 
*pdev)
if (rng_dev)
return -EBUSY;
 
-   clk = clk_get(>dev, "rng");
+   clk = clk_get(>dev, NULL);
if (IS_ERR(clk)) {
dev_err(>dev, "Could not get rng_clk!\n");
err = PTR_ERR(clk);
goto out;
}
 
-   clk_enable(clk);
+   clk_prepare_enable(clk);
 
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -201,7 +201,7 @@ err_ioremap:
release_mem_region(res->start, resource_size(res));
 
 err_region:
-   clk_disable(clk);
+   clk_disable_unprepare(clk);
clk_put(clk);
 
 out:
@@ -212,7 +212,7 @@ static int __exit mxc_rnga_remove(struct platform_device 
*pdev)
 {
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
void __iomem *rng_base = (void __iomem *)mxc_rnga.priv;
-   struct clk *clk = clk_get(>dev, "rng");
+   struct clk *clk = clk_get(>dev, NULL);
 
hwrng_unregister(_rnga);
 
-- 
1.7.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 1/2] hw_random: mxc-rnga: Adapt clocks to new i.mx clock framework

2012-07-06 Thread Fabio Estevam
Adapt clocks to the new i.mx clock framework and fix the following warning:
 
[ cut here ]
WARNING: at drivers/clk/clk.c:511 __clk_enable+0x9c/0xac()  
Modules linked in:  
Backtrace:  
[800124c8] (dump_backtrace+0x0/0x10c) from [804172dc] (dump_stack+0x18/0x1c)
 r7:0009 r6:01ff r5:8032cb50 r4:
[804172c4] (dump_stack+0x0/0x1c) from [80021834] (warn_slowpath_common+0x54)
[800217e0] (warn_slowpath_common+0x0/0x6c) from [80021870] (warn_slowpath_n)
 r9:80581cac r8:8700a9c0 r7:805ab070 r6:8013 r5:806133d4
r4:8700a9c0 
[8002184c] (warn_slowpath_null+0x0/0x2c) from [8032cb50] (__clk_enable+0x9c)
[8032cab4] (__clk_enable+0x0/0xac) from [8032cb88] (clk_enable+0x28/0x44)   
 r5:806133d4 r4:8700a9c0
[8032cb60] (clk_enable+0x0/0x44) from [80560f14] (mxc_rnga_probe+0x68/0x164)
 r7:805ab070 r6:8706ec00 r5:80611314 r4:
[80560eac] (mxc_rnga_probe+0x0/0x164) from [8025914c] (platform_drv_probe+0)
[8025912c] (platform_drv_probe+0x0/0x24) from [80257c7c] (driver_probe_devi)
[80257bfc] (driver_probe_device+0x0/0x204) from [80257e94] (__driver_attach)
 r9:80581cac r8:008e r7: r6:8706ec3c r5:805ab070
r4:8706ec08 
[80257e00] (__driver_attach+0x0/0x98) from [8025642c] (bus_for_each_dev+0x6)
 r7: r6:80257e00 r5:87035e98 r4:805ab070
[802563c4] (bus_for_each_dev+0x0/0x94) from [80257adc] (driver_attach+0x20/)
 r7: r6:873f2380 r5:805ab338 r4:805ab070
[80257abc] (driver_attach+0x0/0x28) from [80256d50] (bus_add_driver+0x18c/0)
[80256bc4] (bus_add_driver+0x0/0x268) from [802584c4] (driver_register+0x80)
[80258444] (driver_register+0x0/0x134) from [802594f4] (platform_driver_reg)
 r7: r6:805c2e00 r5:0007 r4:805ab05c
[802594a8] (platform_driver_register+0x0/0x60) from [80259528] (platform_dr)
[80259508] (platform_driver_probe+0x0/0xa4) from [80560ea0] (mod_init+0x18/)
 r7: r6:805c2e00 r5:0007 r4:87034000
[80560e88] (mod_init+0x0/0x24) from [800086b4] (do_one_initcall+0x40/0x194) 
[80008674] (do_one_initcall+0x0/0x194) from [8053d3f4] (kernel_init+0xfc/0x)
[8053d2f8] (kernel_init+0x0/0x1cc) from [80027190] (do_exit+0x0/0x7ec)  
---[ end trace 4198eed02050f461 ]---
mxc_rnga mxc_rnga: MXC RNGA Registered

Cc: Theodore Ts'o ty...@mit.edu
Cc: Herbert Xu herb...@gondor.apana.org.au 
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Fabio Estevam fabio.este...@freescale.com
---
 drivers/char/hw_random/mxc-rnga.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/char/hw_random/mxc-rnga.c 
b/drivers/char/hw_random/mxc-rnga.c
index 85074de..c49c0b8 100644
--- a/drivers/char/hw_random/mxc-rnga.c
+++ b/drivers/char/hw_random/mxc-rnga.c
@@ -152,14 +152,14 @@ static int __init mxc_rnga_probe(struct platform_device 
*pdev)
if (rng_dev)
return -EBUSY;
 
-   clk = clk_get(pdev-dev, rng);
+   clk = clk_get(pdev-dev, NULL);
if (IS_ERR(clk)) {
dev_err(pdev-dev, Could not get rng_clk!\n);
err = PTR_ERR(clk);
goto out;
}
 
-   clk_enable(clk);
+   clk_prepare_enable(clk);
 
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -201,7 +201,7 @@ err_ioremap:
release_mem_region(res-start, resource_size(res));
 
 err_region:
-   clk_disable(clk);
+   clk_disable_unprepare(clk);
clk_put(clk);
 
 out:
@@ -212,7 +212,7 @@ static int __exit mxc_rnga_remove(struct platform_device 
*pdev)
 {
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
void __iomem *rng_base = (void __iomem *)mxc_rnga.priv;
-   struct clk *clk = clk_get(pdev-dev, rng);
+   struct clk *clk = clk_get(pdev-dev, NULL);
 
hwrng_unregister(mxc_rnga);
 
-- 
1.7.1


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/