On 09/15/2014 06:06 AM, Marek Vasut wrote:
> From: Pavel Machek <pa...@denx.de>
> 
> Make the SoCFPGA MMC stub pick clock via the clock manager
> frequency accessors instead of hard-coding the frequency.
> 
> Also fix calloc() misuse.
> 
> Signed-off-by: Pavel Machek <pa...@denx.de>
> Signed-off-by: Marek Vasut <ma...@denx.de>
> Cc: Chin Liang See <cl...@altera.com>
> Cc: Dinh Nguyen <dingu...@altera.com>
> Cc: Albert Aribaud <albert.u.b...@aribaud.net>
> Cc: Tom Rini <tr...@ti.com>
> Cc: Wolfgang Denk <w...@denx.de>
> Cc: Pavel Machek <pa...@denx.de>
> ---
>  drivers/mmc/socfpga_dw_mmc.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c
> index 1f96382..eb69aed 100644
> --- a/drivers/mmc/socfpga_dw_mmc.c
> +++ b/drivers/mmc/socfpga_dw_mmc.c
> @@ -7,6 +7,7 @@
>  #include <common.h>
>  #include <malloc.h>
>  #include <dwmmc.h>
> +#include <errno.h>
>  #include <asm/arch/dwmmc.h>
>  #include <asm/arch/clock_manager.h>
>  #include <asm/arch/system_manager.h>
> @@ -44,12 +45,18 @@ static void socfpga_dwmci_clksel(struct dwmci_host *host)
>  int socfpga_dwmmc_init(u32 regbase, int bus_width, int index)
>  {
>       struct dwmci_host *host;
> +     unsigned long clk = cm_get_mmc_controller_clk_hz();
> +
> +     if (clk == 0) {
> +             printf("%s: MMC clock is zero!", __func__);
> +             return -EINVAL;
> +     }
>  
>       /* calloc for zero init */
> -     host = calloc(sizeof(struct dwmci_host), 1);
> +     host = calloc(1, sizeof(struct dwmci_host));
>       if (!host) {
> -             printf("dwmci_host calloc fail!\n");
> -             return -1;
> +             printf("%s: calloc() failed!\n", __func__);
> +             return -ENOMEM;
>       }
>  
>       host->name = "SOCFPGA DWMMC";
> @@ -58,7 +65,7 @@ int socfpga_dwmmc_init(u32 regbase, int bus_width, int 
> index)
>       host->clksel = socfpga_dwmci_clksel;
>       host->dev_index = index;
>       /* fixed clock divide by 4 which due to the SDMMC wrapper */
> -     host->bus_hz = CONFIG_SOCFPGA_DWMMC_BUS_HZ;
> +     host->bus_hz = clk;
>       host->fifoth_val = MSIZE(0x2) |
>               RX_WMARK(CONFIG_SOCFPGA_DWMMC_FIFO_DEPTH / 2 - 1) |
>               TX_WMARK(CONFIG_SOCFPGA_DWMMC_FIFO_DEPTH / 2);
> 

Acked-by: Dinh Nguyen <dingu...@opensource.altera.com>

Thanks..
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to