diff options
author | Yinghai Lu <yinghai@kernel.org> | 2009-11-24 21:21:21 -0500 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-12-04 18:47:50 -0500 |
commit | bb965401fd2afa26629b244e7bb2e48a117dc238 (patch) | |
tree | 72627abb2f9f65ced77c6c10709e42948fed0592 /drivers/pci | |
parent | c6a415761c59adabb53699c84e5cb42868d97c67 (diff) |
PCI: show dma_mask bits in /sys
So we can catch if the driver sets an incorrect dma_mask.
Reviewed-by: Grant Grundler <grundler@google.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pci-sysfs.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 0fa707e2a0f8..c5df94e86678 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -184,6 +184,21 @@ numa_node_show(struct device *dev, struct device_attribute *attr, char *buf) | |||
184 | #endif | 184 | #endif |
185 | 185 | ||
186 | static ssize_t | 186 | static ssize_t |
187 | dma_mask_bits_show(struct device *dev, struct device_attribute *attr, char *buf) | ||
188 | { | ||
189 | struct pci_dev *pdev = to_pci_dev(dev); | ||
190 | |||
191 | return sprintf (buf, "%d\n", fls64(pdev->dma_mask)); | ||
192 | } | ||
193 | |||
194 | static ssize_t | ||
195 | consistent_dma_mask_bits_show(struct device *dev, struct device_attribute *attr, | ||
196 | char *buf) | ||
197 | { | ||
198 | return sprintf (buf, "%d\n", fls64(dev->coherent_dma_mask)); | ||
199 | } | ||
200 | |||
201 | static ssize_t | ||
187 | msi_bus_show(struct device *dev, struct device_attribute *attr, char *buf) | 202 | msi_bus_show(struct device *dev, struct device_attribute *attr, char *buf) |
188 | { | 203 | { |
189 | struct pci_dev *pdev = to_pci_dev(dev); | 204 | struct pci_dev *pdev = to_pci_dev(dev); |
@@ -314,6 +329,8 @@ struct device_attribute pci_dev_attrs[] = { | |||
314 | #ifdef CONFIG_NUMA | 329 | #ifdef CONFIG_NUMA |
315 | __ATTR_RO(numa_node), | 330 | __ATTR_RO(numa_node), |
316 | #endif | 331 | #endif |
332 | __ATTR_RO(dma_mask_bits), | ||
333 | __ATTR_RO(consistent_dma_mask_bits), | ||
317 | __ATTR(enable, 0600, is_enabled_show, is_enabled_store), | 334 | __ATTR(enable, 0600, is_enabled_show, is_enabled_store), |
318 | __ATTR(broken_parity_status,(S_IRUGO|S_IWUSR), | 335 | __ATTR(broken_parity_status,(S_IRUGO|S_IWUSR), |
319 | broken_parity_status_show,broken_parity_status_store), | 336 | broken_parity_status_show,broken_parity_status_store), |