svn commit: r353527 - head/sys/arm/allwinner

Emmanuel Vadot manu at FreeBSD.org
Mon Oct 14 21:50:45 UTC 2019


Author: manu
Date: Mon Oct 14 21:50:44 2019
New Revision: 353527
URL: https://svnweb.freebsd.org/changeset/base/353527

Log:
  arm: allwinner: Disable the clock before changing it's freq
  
  You aren't supposed to changing the freq of a clock when it is
  enable so disable the clock before changing the freq and then
  re-enable it.
  
  MFC after:	1 month

Modified:
  head/sys/arm/allwinner/aw_mmc.c

Modified: head/sys/arm/allwinner/aw_mmc.c
==============================================================================
--- head/sys/arm/allwinner/aw_mmc.c	Mon Oct 14 21:49:07 2019	(r353526)
+++ head/sys/arm/allwinner/aw_mmc.c	Mon Oct 14 21:50:44 2019	(r353527)
@@ -1433,6 +1433,10 @@ aw_mmc_update_ios(device_t bus, device_t child)
 		}
 
 		/* Set the MMC clock. */
+		error = clk_disable(sc->aw_clk_mmc);
+		if (error != 0 && bootverbose)
+			device_printf(sc->aw_dev,
+			  "failed to disable mmc clock: %d\n", error);
 		error = clk_set_freq(sc->aw_clk_mmc, clock,
 		    CLK_SET_ROUND_DOWN);
 		if (error != 0) {
@@ -1441,6 +1445,10 @@ aw_mmc_update_ios(device_t bus, device_t child)
 			    clock, error);
 			return (error);
 		}
+		error = clk_enable(sc->aw_clk_mmc);
+		if (error != 0 && bootverbose)
+			device_printf(sc->aw_dev,
+			  "failed to re-enable mmc clock: %d\n", error);
 
 		if (sc->aw_mmc_conf->can_calibrate)
 			AW_MMC_WRITE_4(sc, AW_MMC_SAMP_DL, AW_MMC_SAMP_DL_SW_EN);


More information about the svn-src-all mailing list