Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Feb 2010 20:58:45 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r203358 - head/sys/dev/bge
Message-ID:  <201002012058.o11KwjQK070872@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yongari
Date: Mon Feb  1 20:58:45 2010
New Revision: 203358
URL: http://svn.freebsd.org/changeset/base/203358

Log:
  PCI express device status register has W1C feature. Writing 0 has
  no effect. Make sure to clear error bits by writing 1. [1]
  While I'm here use predefined value instead of hardcodig magic
  vlaue.
  
  Submitted by:	msaitoh at NetBSD [1]

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Mon Feb  1 20:54:45 2010	(r203357)
+++ head/sys/dev/bge/if_bge.c	Mon Feb  1 20:58:45 2010	(r203358)
@@ -3136,14 +3136,17 @@ bge_reset(struct bge_softc *sc)
 		devctl = pci_read_config(dev,
 		    sc->bge_expcap + PCIR_EXPRESS_DEVICE_CTL, 2);
 		/* Clear enable no snoop and disable relaxed ordering. */
-		devctl &= ~(0x0010 | 0x0800);
+		devctl &= ~(PCIM_EXP_CTL_RELAXED_ORD_ENABLE |
+		    PCIM_EXP_CTL_NOSNOOP_ENABLE);
 		/* Set PCIE max payload size to 128. */
 		devctl &= ~PCIM_EXP_CTL_MAX_PAYLOAD;
 		pci_write_config(dev, sc->bge_expcap + PCIR_EXPRESS_DEVICE_CTL,
 		    devctl, 2);
 		/* Clear error status. */
 		pci_write_config(dev, sc->bge_expcap + PCIR_EXPRESS_DEVICE_STA,
-		    0, 2);
+		    PCIM_EXP_STA_CORRECTABLE_ERROR |
+		    PCIM_EXP_STA_NON_FATAL_ERROR | PCIM_EXP_STA_FATAL_ERROR |
+		    PCIM_EXP_STA_UNSUPPORTED_REQ, 2);
 	}
 
 	/* Reset some of the PCI state that got zapped by reset. */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002012058.o11KwjQK070872>