Author: manu
Date: Sat Feb 17 18:30:25 2018
New Revision: 329463
URL: https://svnweb.freebsd.org/changeset/base/329463

Log:
  aw_mmc: Only change the clock if it has really changed
  
  This also seems to fix problem when booting Pine64 from the mmc.
  
  Tested On:    Pine64
  Tested On:    Pine64-LTS

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

Modified: head/sys/arm/allwinner/aw_mmc.c
==============================================================================
--- head/sys/arm/allwinner/aw_mmc.c     Sat Feb 17 18:00:01 2018        
(r329462)
+++ head/sys/arm/allwinner/aw_mmc.c     Sat Feb 17 18:30:25 2018        
(r329463)
@@ -117,6 +117,7 @@ struct aw_mmc_softc {
        int32_t                 aw_vdd;
        regulator_t             aw_reg_vmmc;
        regulator_t             aw_reg_vqmmc;
+       unsigned int            aw_clock;
 
        /* Fields required for DMA access. */
        bus_addr_t              aw_dma_desc_phys;
@@ -939,8 +940,8 @@ aw_mmc_update_ios(device_t bus, device_t child)
                reg &= ~AW_MMC_CTRL_DDR_MOD_SEL;
        AW_MMC_WRITE_4(sc, AW_MMC_GCTL, reg);
 
-       if (ios->clock) {
-               clock = ios->clock;
+       if (ios->clock && ios->clock != sc->aw_clock) {
+               sc->aw_clock = clock = ios->clock;
 
                /* Disable clock */
                error = aw_mmc_update_clock(sc, 0);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to