diff options
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r-- | drivers/pci/pci-sysfs.c | 11 |
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 | ||
26 | static int sysfs_initialized; /* = 0 */ | 27 | static 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 | ||
655 | err_rom_file: | 658 | err_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 |