diff --git a/sys/amd64/pci/pci_bus.c b/sys/amd64/pci/pci_bus.c index 7085c1edbc77..b801abd16c90 100644 --- a/sys/amd64/pci/pci_bus.c +++ b/sys/amd64/pci/pci_bus.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcibus.c,v 1.37 1997/05/26 21:11:05 se Exp $ + * $Id: pcibus.c,v 1.38 1997/05/26 21:25:24 se Exp $ * */ @@ -59,9 +59,10 @@ pci_cfgenable(unsigned bus, unsigned slot, unsigned func, int reg, int bytes) && (reg & (bytes -1)) == 0) { switch (cfgmech) { case 1: - outl(CONF1_ADDR_PORT, (1 << 31) | - (bus << 16) | (slot << 11) | (func << 8) | reg); - dataport = CONF1_DATA_PORT; + outl(CONF1_ADDR_PORT, (1 << 31) + | (bus << 16) | (slot << 11) + | (func << 8) | (reg & ~0x03)); + dataport = CONF1_DATA_PORT + (reg & 0x03); break; case 2: outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1)); diff --git a/sys/amd64/pci/pci_cfgreg.c b/sys/amd64/pci/pci_cfgreg.c index 7085c1edbc77..b801abd16c90 100644 --- a/sys/amd64/pci/pci_cfgreg.c +++ b/sys/amd64/pci/pci_cfgreg.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcibus.c,v 1.37 1997/05/26 21:11:05 se Exp $ + * $Id: pcibus.c,v 1.38 1997/05/26 21:25:24 se Exp $ * */ @@ -59,9 +59,10 @@ pci_cfgenable(unsigned bus, unsigned slot, unsigned func, int reg, int bytes) && (reg & (bytes -1)) == 0) { switch (cfgmech) { case 1: - outl(CONF1_ADDR_PORT, (1 << 31) | - (bus << 16) | (slot << 11) | (func << 8) | reg); - dataport = CONF1_DATA_PORT; + outl(CONF1_ADDR_PORT, (1 << 31) + | (bus << 16) | (slot << 11) + | (func << 8) | (reg & ~0x03)); + dataport = CONF1_DATA_PORT + (reg & 0x03); break; case 2: outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1)); diff --git a/sys/i386/isa/pcibus.c b/sys/i386/isa/pcibus.c index 7085c1edbc77..b801abd16c90 100644 --- a/sys/i386/isa/pcibus.c +++ b/sys/i386/isa/pcibus.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcibus.c,v 1.37 1997/05/26 21:11:05 se Exp $ + * $Id: pcibus.c,v 1.38 1997/05/26 21:25:24 se Exp $ * */ @@ -59,9 +59,10 @@ pci_cfgenable(unsigned bus, unsigned slot, unsigned func, int reg, int bytes) && (reg & (bytes -1)) == 0) { switch (cfgmech) { case 1: - outl(CONF1_ADDR_PORT, (1 << 31) | - (bus << 16) | (slot << 11) | (func << 8) | reg); - dataport = CONF1_DATA_PORT; + outl(CONF1_ADDR_PORT, (1 << 31) + | (bus << 16) | (slot << 11) + | (func << 8) | (reg & ~0x03)); + dataport = CONF1_DATA_PORT + (reg & 0x03); break; case 2: outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1)); diff --git a/sys/i386/pci/pci_bus.c b/sys/i386/pci/pci_bus.c index 7085c1edbc77..b801abd16c90 100644 --- a/sys/i386/pci/pci_bus.c +++ b/sys/i386/pci/pci_bus.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcibus.c,v 1.37 1997/05/26 21:11:05 se Exp $ + * $Id: pcibus.c,v 1.38 1997/05/26 21:25:24 se Exp $ * */ @@ -59,9 +59,10 @@ pci_cfgenable(unsigned bus, unsigned slot, unsigned func, int reg, int bytes) && (reg & (bytes -1)) == 0) { switch (cfgmech) { case 1: - outl(CONF1_ADDR_PORT, (1 << 31) | - (bus << 16) | (slot << 11) | (func << 8) | reg); - dataport = CONF1_DATA_PORT; + outl(CONF1_ADDR_PORT, (1 << 31) + | (bus << 16) | (slot << 11) + | (func << 8) | (reg & ~0x03)); + dataport = CONF1_DATA_PORT + (reg & 0x03); break; case 2: outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1)); diff --git a/sys/i386/pci/pci_cfgreg.c b/sys/i386/pci/pci_cfgreg.c index 7085c1edbc77..b801abd16c90 100644 --- a/sys/i386/pci/pci_cfgreg.c +++ b/sys/i386/pci/pci_cfgreg.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcibus.c,v 1.37 1997/05/26 21:11:05 se Exp $ + * $Id: pcibus.c,v 1.38 1997/05/26 21:25:24 se Exp $ * */ @@ -59,9 +59,10 @@ pci_cfgenable(unsigned bus, unsigned slot, unsigned func, int reg, int bytes) && (reg & (bytes -1)) == 0) { switch (cfgmech) { case 1: - outl(CONF1_ADDR_PORT, (1 << 31) | - (bus << 16) | (slot << 11) | (func << 8) | reg); - dataport = CONF1_DATA_PORT; + outl(CONF1_ADDR_PORT, (1 << 31) + | (bus << 16) | (slot << 11) + | (func << 8) | (reg & ~0x03)); + dataport = CONF1_DATA_PORT + (reg & 0x03); break; case 2: outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1)); diff --git a/sys/i386/pci/pci_pir.c b/sys/i386/pci/pci_pir.c index 7085c1edbc77..b801abd16c90 100644 --- a/sys/i386/pci/pci_pir.c +++ b/sys/i386/pci/pci_pir.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcibus.c,v 1.37 1997/05/26 21:11:05 se Exp $ + * $Id: pcibus.c,v 1.38 1997/05/26 21:25:24 se Exp $ * */ @@ -59,9 +59,10 @@ pci_cfgenable(unsigned bus, unsigned slot, unsigned func, int reg, int bytes) && (reg & (bytes -1)) == 0) { switch (cfgmech) { case 1: - outl(CONF1_ADDR_PORT, (1 << 31) | - (bus << 16) | (slot << 11) | (func << 8) | reg); - dataport = CONF1_DATA_PORT; + outl(CONF1_ADDR_PORT, (1 << 31) + | (bus << 16) | (slot << 11) + | (func << 8) | (reg & ~0x03)); + dataport = CONF1_DATA_PORT + (reg & 0x03); break; case 2: outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1));