Re: [PATCH 1/1] designware: add clock support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Oct 07, 2012 at 03:03:03PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> allow the driver to request it's clock and enable it
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx>
> ---
>  drivers/net/designware.c |   20 +++++++++++++++++++-
>  1 file changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/designware.c b/drivers/net/designware.c
> index ec51825..1cbcd5a 100644
> --- a/drivers/net/designware.c
> +++ b/drivers/net/designware.c
> @@ -32,8 +32,10 @@
>  #include <asm/mmu.h>
>  #include <net/designware.h>
>  #include <linux/phy.h>
> -#include "designware.h"
> +#include <linux/clk.h>
> +#include <linux/err.h>
>  
> +#include "designware.h"
>  
>  struct dw_eth_dev {
>  	struct eth_device netdev;
> @@ -390,6 +392,8 @@ static int dwc_ether_probe(struct device_d *dev)
>  	struct mii_bus *miibus;
>  	void __iomem *base;
>  	struct dwc_ether_platform_data *pdata = dev->platform_data;
> +	struct clk *clk;
> +	int ret;
>  
>  	if (!pdata) {
>  		printf("dwc_ether: no platform_data\n");
> @@ -427,6 +431,20 @@ static int dwc_ether_probe(struct device_d *dev)
>  	miibus->write = dwc_ether_mii_write;
>  	miibus->priv = priv;
>  
> +	clk = clk_get(dev, NULL);
> +	if (IS_ERR(clk)) {
> +		ret = PTR_ERR(clk);
> +		dev_err(dev, "no clk ret = %d\n", ret);
> +		return ret;
> +	}
> +
> +	ret = clk_enable(clk);
> +	if (ret) {
> +		dev_err(dev, "can not enable clk ret = %d\n", ret);
> +		clk_put(clk);
> +		return ret;
> +	}

I really doubt it makes sense to request clks in drivers just to enable
it in barebox. The clock ends up being enabled everytime anyway since
the clk enable is done in the probe function and is never disabled
again. This forces every user of this driver to provide the clk API for
absolutely no gain.

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 |

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox


[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux