Author: yongari
Date: Thu Mar 18 18:38:53 2010
New Revision: 205285
URL: http://svn.freebsd.org/changeset/base/205285

Log:
  MFC r202821-202822.
  
  r202821:
    Fix a long standing ASF heartbeat sending bug. The initial
    implementation of heartbeat interval was 2 but there was typo which
    caused the heartbeat is sent approximately every 5 seconds. This
    caused unintended controller reset by firmware because firmware
    thought OS was crashed.
  
    Submitted by:       Floris Bos < info <> je-eigen-domein dot nl >
    Tested by:  Andrzej Tobola < ato <> iem dot pw dot edu dot pl >
  
  r202822:
    Use new handshake command for BCM5750 or new controllers.

Modified:
  stable/7/sys/dev/bge/if_bge.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/dev/bge/if_bge.c
==============================================================================
--- stable/7/sys/dev/bge/if_bge.c       Thu Mar 18 18:35:28 2010        
(r205284)
+++ stable/7/sys/dev/bge/if_bge.c       Thu Mar 18 18:38:53 2010        
(r205285)
@@ -2744,9 +2744,8 @@ bge_attach(device_t dev)
                    & BGE_HWCFG_ASF) {
                        sc->bge_asf_mode |= ASF_ENABLE;
                        sc->bge_asf_mode |= ASF_STACKUP;
-                       if (sc->bge_asicrev == BGE_ASICREV_BCM5750) {
+                       if (BGE_IS_575X_PLUS(sc))
                                sc->bge_asf_mode |= ASF_NEW_HANDSHAKE;
-                       }
                }
        }
 
@@ -3673,7 +3672,7 @@ bge_asf_driver_up(struct bge_softc *sc)
                if (sc->bge_asf_count)
                        sc->bge_asf_count --;
                else {
-                       sc->bge_asf_count = 5;
+                       sc->bge_asf_count = 2;
                        bge_writemem_ind(sc, BGE_SOFTWARE_GENCOMM_FW,
                            BGE_FW_DRV_ALIVE);
                        bge_writemem_ind(sc, BGE_SOFTWARE_GENNCOMM_FW_LEN, 4);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to