aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r--drivers/pci/pci-sysfs.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 7d1877341aad..abf4203304e4 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -21,6 +21,7 @@
21#include <linux/topology.h> 21#include <linux/topology.h>
22#include <linux/mm.h> 22#include <linux/mm.h>
23#include <linux/capability.h> 23#include <linux/capability.h>
24#include <linux/aspm.h>
24#include "pci.h" 25#include "pci.h"
25 26
26static int sysfs_initialized; /* = 0 */ 27static int sysfs_initialized; /* = 0 */
@@ -358,7 +359,7 @@ pci_read_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr,
358 char *buf, loff_t off, size_t count) 359 char *buf, loff_t off, size_t count)
359{ 360{
360 struct pci_bus *bus = to_pci_bus(container_of(kobj, 361 struct pci_bus *bus = to_pci_bus(container_of(kobj,
361 struct class_device, 362 struct device,
362 kobj)); 363 kobj));
363 364
364 /* Only support 1, 2 or 4 byte accesses */ 365 /* Only support 1, 2 or 4 byte accesses */
@@ -383,7 +384,7 @@ pci_write_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr,
383 char *buf, loff_t off, size_t count) 384 char *buf, loff_t off, size_t count)
384{ 385{
385 struct pci_bus *bus = to_pci_bus(container_of(kobj, 386 struct pci_bus *bus = to_pci_bus(container_of(kobj,
386 struct class_device, 387 struct device,
387 kobj)); 388 kobj));
388 /* Only support 1, 2 or 4 byte accesses */ 389 /* Only support 1, 2 or 4 byte accesses */
389 if (count != 1 && count != 2 && count != 4) 390 if (count != 1 && count != 2 && count != 4)
@@ -407,7 +408,7 @@ pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr,
407 struct vm_area_struct *vma) 408 struct vm_area_struct *vma)
408{ 409{
409 struct pci_bus *bus = to_pci_bus(container_of(kobj, 410 struct pci_bus *bus = to_pci_bus(container_of(kobj,
410 struct class_device, 411 struct device,
411 kobj)); 412 kobj));
412 413
413 return pci_mmap_legacy_page_range(bus, vma); 414 return pci_mmap_legacy_page_range(bus, vma);
@@ -650,6 +651,8 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
650 if (pcibios_add_platform_entries(pdev)) 651 if (pcibios_add_platform_entries(pdev))
651 goto err_rom_file; 652 goto err_rom_file;
652 653
654 pcie_aspm_create_sysfs_dev_files(pdev);
655
653 return 0; 656 return 0;
654 657
655err_rom_file: 658err_rom_file:
@@ -679,6 +682,8 @@ void pci_remove_sysfs_dev_files(struct pci_dev *pdev)
679 if (!sysfs_initialized) 682 if (!sysfs_initialized)
680 return; 683 return;
681 684
685 pcie_aspm_remove_sysfs_dev_files(pdev);
686
682 if (pdev->cfg_size < 4096) 687 if (pdev->cfg_size < 4096)
683 sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr); 688 sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr);
684 else 689 else