| .. | .. |
|---|
| 33 | 33 | zpci_attr(pfgid, "0x%02x\n", pfgid); |
|---|
| 34 | 34 | zpci_attr(vfn, "0x%04x\n", vfn); |
|---|
| 35 | 35 | zpci_attr(pft, "0x%02x\n", pft); |
|---|
| 36 | +zpci_attr(port, "%d\n", port); |
|---|
| 36 | 37 | zpci_attr(uid, "0x%x\n", uid); |
|---|
| 37 | 38 | zpci_attr(segment0, "0x%02x\n", pfip[0]); |
|---|
| 38 | 39 | zpci_attr(segment1, "0x%02x\n", pfip[1]); |
|---|
| 39 | 40 | zpci_attr(segment2, "0x%02x\n", pfip[2]); |
|---|
| 40 | 41 | zpci_attr(segment3, "0x%02x\n", pfip[3]); |
|---|
| 42 | + |
|---|
| 43 | +static ssize_t mio_enabled_show(struct device *dev, |
|---|
| 44 | + struct device_attribute *attr, char *buf) |
|---|
| 45 | +{ |
|---|
| 46 | + struct zpci_dev *zdev = to_zpci(to_pci_dev(dev)); |
|---|
| 47 | + |
|---|
| 48 | + return sprintf(buf, zpci_use_mio(zdev) ? "1\n" : "0\n"); |
|---|
| 49 | +} |
|---|
| 50 | +static DEVICE_ATTR_RO(mio_enabled); |
|---|
| 41 | 51 | |
|---|
| 42 | 52 | static ssize_t recover_store(struct device *dev, struct device_attribute *attr, |
|---|
| 43 | 53 | const char *buf, size_t count) |
|---|
| .. | .. |
|---|
| 79 | 89 | ret = zpci_enable_device(zdev); |
|---|
| 80 | 90 | if (ret) |
|---|
| 81 | 91 | goto out; |
|---|
| 82 | | - pci_rescan_bus(zdev->bus); |
|---|
| 92 | + pci_rescan_bus(zdev->zbus->bus); |
|---|
| 83 | 93 | } |
|---|
| 84 | 94 | out: |
|---|
| 85 | 95 | pci_unlock_rescan_remove(); |
|---|
| .. | .. |
|---|
| 133 | 143 | &dev_attr_pchid.attr, |
|---|
| 134 | 144 | &dev_attr_pfgid.attr, |
|---|
| 135 | 145 | &dev_attr_pft.attr, |
|---|
| 146 | + &dev_attr_port.attr, |
|---|
| 136 | 147 | &dev_attr_vfn.attr, |
|---|
| 137 | 148 | &dev_attr_uid.attr, |
|---|
| 138 | 149 | &dev_attr_recover.attr, |
|---|
| 150 | + &dev_attr_mio_enabled.attr, |
|---|
| 139 | 151 | NULL, |
|---|
| 140 | 152 | }; |
|---|
| 141 | 153 | static struct attribute_group zpci_attr_group = { |
|---|