|
@@ -56,10 +56,13 @@ int raw_pci_read(unsigned int seg, unsigned int bus, unsigned int devfn,
|
|
if ((seg | reg) <= 255) {
|
|
if ((seg | reg) <= 255) {
|
|
addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
|
|
addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
|
|
mode = 0;
|
|
mode = 0;
|
|
- } else {
|
|
|
|
|
|
+ } else if (sal_revision >= SAL_VERSION_CODE(3,2)) {
|
|
addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
|
|
addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
|
|
mode = 1;
|
|
mode = 1;
|
|
|
|
+ } else {
|
|
|
|
+ return -EINVAL;
|
|
}
|
|
}
|
|
|
|
+
|
|
result = ia64_sal_pci_config_read(addr, mode, len, &data);
|
|
result = ia64_sal_pci_config_read(addr, mode, len, &data);
|
|
if (result != 0)
|
|
if (result != 0)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
@@ -80,9 +83,11 @@ int raw_pci_write(unsigned int seg, unsigned int bus, unsigned int devfn,
|
|
if ((seg | reg) <= 255) {
|
|
if ((seg | reg) <= 255) {
|
|
addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
|
|
addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
|
|
mode = 0;
|
|
mode = 0;
|
|
- } else {
|
|
|
|
|
|
+ } else if (sal_revision >= SAL_VERSION_CODE(3,2)) {
|
|
addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
|
|
addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
|
|
mode = 1;
|
|
mode = 1;
|
|
|
|
+ } else {
|
|
|
|
+ return -EINVAL;
|
|
}
|
|
}
|
|
result = ia64_sal_pci_config_write(addr, mode, len, value);
|
|
result = ia64_sal_pci_config_write(addr, mode, len, value);
|
|
if (result != 0)
|
|
if (result != 0)
|