pci_cfgreg.c (205432) | pci_cfgreg.c (253560) |
---|---|
1/*- 2 * Copyright (c) 2010 Marcel Moolenaar 3 * Copyright (c) 2001 Doug Rabson 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/*- 2 * Copyright (c) 2010 Marcel Moolenaar 3 * Copyright (c) 2001 Doug Rabson 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/ia64/pci/pci_cfgreg.c 205432 2010-03-22 03:06:11Z marcel $ | 27 * $FreeBSD: head/sys/ia64/pci/pci_cfgreg.c 253560 2013-07-23 03:03:17Z marcel $ |
28 */ 29 30#include <sys/param.h> 31#include <machine/cpufunc.h> 32#include <machine/pci_cfgreg.h> 33#include <machine/sal.h> 34 35static u_long --- 29 unchanged lines hidden (view full) --- 65 66uint32_t 67pci_cfgregread(int bus, int slot, int func, int reg, int len) 68{ 69 struct ia64_sal_result res; 70 register_t is; 71 u_long addr; 72 | 28 */ 29 30#include <sys/param.h> 31#include <machine/cpufunc.h> 32#include <machine/pci_cfgreg.h> 33#include <machine/sal.h> 34 35static u_long --- 29 unchanged lines hidden (view full) --- 65 66uint32_t 67pci_cfgregread(int bus, int slot, int func, int reg, int len) 68{ 69 struct ia64_sal_result res; 70 register_t is; 71 u_long addr; 72 |
73 addr = pci_sal_address(0, bus, slot, func, reg); | 73 addr = pci_sal_address(bus >> 8, bus & 0xff, slot, func, reg); |
74 if (addr == ~0ul) 75 return (~0); 76 77 if (!pci_valid_access(reg, len)) 78 return (~0); 79 80 is = intr_disable(); 81 res = ia64_sal_entry(SAL_PCI_CONFIG_READ, addr, len, 0, 0, 0, 0, 0); --- 4 unchanged lines hidden (view full) --- 86 87void 88pci_cfgregwrite(int bus, int slot, int func, int reg, uint32_t data, int len) 89{ 90 struct ia64_sal_result res; 91 register_t is; 92 u_long addr; 93 | 74 if (addr == ~0ul) 75 return (~0); 76 77 if (!pci_valid_access(reg, len)) 78 return (~0); 79 80 is = intr_disable(); 81 res = ia64_sal_entry(SAL_PCI_CONFIG_READ, addr, len, 0, 0, 0, 0, 0); --- 4 unchanged lines hidden (view full) --- 86 87void 88pci_cfgregwrite(int bus, int slot, int func, int reg, uint32_t data, int len) 89{ 90 struct ia64_sal_result res; 91 register_t is; 92 u_long addr; 93 |
94 addr = pci_sal_address(0, bus, slot, func, reg); | 94 addr = pci_sal_address(bus >> 8, bus & 0xff, slot, func, reg); |
95 if (addr == ~0ul) 96 return; 97 98 if (!pci_valid_access(reg, len)) 99 return; 100 101 is = intr_disable(); 102 res = ia64_sal_entry(SAL_PCI_CONFIG_WRITE, addr, len, data, 0, 0, 0, 0); 103 intr_restore(is); 104} | 95 if (addr == ~0ul) 96 return; 97 98 if (!pci_valid_access(reg, len)) 99 return; 100 101 is = intr_disable(); 102 res = ia64_sal_entry(SAL_PCI_CONFIG_WRITE, addr, len, data, 0, 0, 0, 0); 103 intr_restore(is); 104} |