mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
mmc: dw_mmc-rockchip: Fix wrong internal phase calculate
commit739f04f4a4upstream. ciu clock is 2 times of io clock, but the sample clk used is derived from io clock provided to the card. So we should use io clock to calculate the phase. Fixes:59903441f5("mmc: dw_mmc-rockchip: Add internal phase support") Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Acked-by: Heiko Stuebner <heiko@sntech.de> Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3b935c5353
commit
a54ba4afb3
@@ -43,7 +43,7 @@ struct dw_mci_rockchip_priv_data {
|
|||||||
*/
|
*/
|
||||||
static int rockchip_mmc_get_internal_phase(struct dw_mci *host, bool sample)
|
static int rockchip_mmc_get_internal_phase(struct dw_mci *host, bool sample)
|
||||||
{
|
{
|
||||||
unsigned long rate = clk_get_rate(host->ciu_clk);
|
unsigned long rate = clk_get_rate(host->ciu_clk) / RK3288_CLKGEN_DIV;
|
||||||
u32 raw_value;
|
u32 raw_value;
|
||||||
u16 degrees;
|
u16 degrees;
|
||||||
u32 delay_num = 0;
|
u32 delay_num = 0;
|
||||||
@@ -86,7 +86,7 @@ static int rockchip_mmc_get_phase(struct dw_mci *host, bool sample)
|
|||||||
|
|
||||||
static int rockchip_mmc_set_internal_phase(struct dw_mci *host, bool sample, int degrees)
|
static int rockchip_mmc_set_internal_phase(struct dw_mci *host, bool sample, int degrees)
|
||||||
{
|
{
|
||||||
unsigned long rate = clk_get_rate(host->ciu_clk);
|
unsigned long rate = clk_get_rate(host->ciu_clk) / RK3288_CLKGEN_DIV;
|
||||||
u8 nineties, remainder;
|
u8 nineties, remainder;
|
||||||
u8 delay_num;
|
u8 delay_num;
|
||||||
u32 raw_value;
|
u32 raw_value;
|
||||||
|
|||||||
Reference in New Issue
Block a user