[PATCH 09/12] mmc: rockchip_dw_mmc: Fix get_mmc_clk return value
Kever Yang
kever.yang at rock-chips.com
Tue Mar 14 04:25:54 CET 2023
On 2023/3/14 08:38, Jonas Karlman wrote:
> The get_mmc_clk ops is expected to set a clock rate and return the
> configured rate as an unsigned value. However, if clk_set_rate fails,
> e.g. using a fixed rate clock, a negative error value is returned.
>
> The mmc core will treat this as a valid unsigned rate and tries to
> configure a divider based on this bogus clock rate.
>
> Use 0 as the return value when setting clock rate fails, the mmc core
> will configure to use bypass mode instead of using a bogus divider.
>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> drivers/mmc/rockchip_dw_mmc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c
> index 3661ce33143e..72c820ee6330 100644
> --- a/drivers/mmc/rockchip_dw_mmc.c
> +++ b/drivers/mmc/rockchip_dw_mmc.c
> @@ -52,7 +52,7 @@ static uint rockchip_dwmmc_get_mmc_clk(struct dwmci_host *host, uint freq)
> ret = clk_set_rate(&priv->clk, freq);
> if (ret < 0) {
> debug("%s: err=%d\n", __func__, ret);
> - return ret;
> + return 0;
> }
>
> return freq;
More information about the U-Boot
mailing list