Subject: [PATCH] PCI, sysfs: Add pcie attrs for pcie device under pci dev dir. Will put link_disable and link_retrain Signed-off-by: Yinghai Lu --- drivers/pci/Makefile | 2 +- drivers/pci/pci-sysfs.c | 1 + drivers/pci/pci.h | 1 + drivers/pci/pcie-sysfs.c | 23 +++++++++++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) Index: linux-2.6/drivers/pci/pci-sysfs.c =================================================================== --- linux-2.6.orig/drivers/pci/pci-sysfs.c +++ linux-2.6/drivers/pci/pci-sysfs.c @@ -1608,6 +1608,7 @@ static struct attribute_group pci_dev_br static const struct attribute_group *pci_dev_attr_groups[] = { &pci_dev_attr_group, &pci_dev_bridge_attr_group, + &pci_dev_pcie_attr_group, &pci_dev_hp_attr_group, #ifdef CONFIG_PCI_IOV &sriov_dev_attr_group, Index: linux-2.6/drivers/pci/pcie-sysfs.c =================================================================== --- /dev/null +++ linux-2.6/drivers/pci/pcie-sysfs.c @@ -0,0 +1,23 @@ +#include +#include + +static struct attribute *pci_dev_pcie_dev_attrs[] = { + NULL, +}; + +static umode_t pci_dev_pcie_attrs_are_visible(struct kobject *kobj, + struct attribute *a, int n) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct pci_dev *pdev = to_pci_dev(dev); + + if (!pci_is_pcie(pdev)) + return 0; + + return a->mode; +} + +struct attribute_group pci_dev_pcie_attr_group = { + .is_visible = pci_dev_pcie_attrs_are_visible, + .attrs = pci_dev_pcie_dev_attrs, +}; Index: linux-2.6/drivers/pci/pci.h =================================================================== --- linux-2.6.orig/drivers/pci/pci.h +++ linux-2.6/drivers/pci/pci.h @@ -152,6 +152,7 @@ static inline int pci_no_d1d2(struct pci extern const struct attribute_group *pci_dev_groups[]; extern const struct attribute_group *pcibus_groups[]; extern struct device_type pci_dev_type; +extern struct attribute_group pci_dev_pcie_attr_group; extern const struct attribute_group *pci_bus_groups[]; Index: linux-2.6/drivers/pci/Makefile =================================================================== --- linux-2.6.orig/drivers/pci/Makefile +++ linux-2.6/drivers/pci/Makefile @@ -4,7 +4,7 @@ obj-y += access.o bus.o probe.o host-bridge.o remove.o pci.o \ pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \ - irq.o vpd.o setup-bus.o pcie-link.o vc.o + irq.o vpd.o setup-bus.o pcie-link.o pcie-sysfs.o vc.o obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_SYSFS) += slot.o