Message ID | 52FE89FF.4020700@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Fri, Feb 14, 2014 at 2:26 PM, Rajat Jain <rajatxjain@gmail.com> wrote: > With recent addition of Link state change based hot-plug, it makes > sense to display this capability in dbg_ctrl() addition to others. > > (Also move the call to dbg_ctrl() further down untill after the value > is populated in ctrl->link_active_reporting) > > Signed-off-by: Rajat Jain <rajatxjain@gmail.com> > Signed-off-by: Rajat Jain <rajatjain@juniper.net> > Signed-off-by: Guenter Roeck <groeck@juniper.net> This is fine as it is, but I'd like to get rid of dbg_ctrl() altogether someday. I made pcie_init() more verbose with afe2478f2e3f ("PCI: pciehp: Announce slot capabilities (slot #, button, LEDs, etc)"), and it does include the PCI_EXP_LNKCAP_DLLLARC info. Is there anything important left in dbg_ctrl() that we don't already print elsewhere? The PCI core prints the vendor/device and BAR info. Of course, we don't print the entire capabilities/status/control words anywhere else. Is that important? > --- > drivers/pci/hotplug/pciehp_hpc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c > index da4b020..cbe8e924 100644 > --- a/drivers/pci/hotplug/pciehp_hpc.c > +++ b/drivers/pci/hotplug/pciehp_hpc.c > @@ -747,6 +747,8 @@ static inline void dbg_ctrl(struct controller *ctrl) > EMI(ctrl) ? "yes" : "no"); > ctrl_info(ctrl, " Command Completed : %3s\n", > NO_CMD_CMPL(ctrl) ? "no" : "yes"); > + ctrl_info(ctrl, " Link Change Reporting: %3s\n", > + ctrl->link_active_reporting ? "yes" : "no"); > pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, ®16); > ctrl_info(ctrl, "Slot Status : 0x%04x\n", reg16); > pcie_capability_read_word(pdev, PCI_EXP_SLTCTL, ®16); > @@ -771,7 +773,6 @@ struct controller *pcie_init(struct pcie_device *dev) > ctrl->slot_cap = slot_cap; > mutex_init(&ctrl->ctrl_lock); > init_waitqueue_head(&ctrl->queue); > - dbg_ctrl(ctrl); > /* > * Controller doesn't notify of command completion if the "No > * Command Completed Support" bit is set in Slot Capability > @@ -784,10 +785,9 @@ struct controller *pcie_init(struct pcie_device *dev) > > /* Check if Data Link Layer Link Active Reporting is implemented */ > pcie_capability_read_dword(pdev, PCI_EXP_LNKCAP, &link_cap); > - if (link_cap & PCI_EXP_LNKCAP_DLLLARC) { > - ctrl_dbg(ctrl, "Link Active Reporting supported\n"); > + if (link_cap & PCI_EXP_LNKCAP_DLLLARC) > ctrl->link_active_reporting = 1; > - } > + dbg_ctrl(ctrl); > > /* Clear all remaining event bits in Slot Status register */ > pcie_capability_write_word(pdev, PCI_EXP_SLTSTA, > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello Bjorn, On Fri, Feb 14, 2014 at 1:35 PM, Bjorn Helgaas <bhelgaas@google.com> wrote: > On Fri, Feb 14, 2014 at 2:26 PM, Rajat Jain <rajatxjain@gmail.com> wrote: >> With recent addition of Link state change based hot-plug, it makes >> sense to display this capability in dbg_ctrl() addition to others. >> >> (Also move the call to dbg_ctrl() further down untill after the value >> is populated in ctrl->link_active_reporting) >> >> Signed-off-by: Rajat Jain <rajatxjain@gmail.com> >> Signed-off-by: Rajat Jain <rajatjain@juniper.net> >> Signed-off-by: Guenter Roeck <groeck@juniper.net> > > This is fine as it is, but I'd like to get rid of dbg_ctrl() > altogether someday. I made pcie_init() more verbose with afe2478f2e3f > ("PCI: pciehp: Announce slot capabilities (slot #, button, LEDs, > etc)"), and it does include the PCI_EXP_LNKCAP_DLLLARC info. > > Is there anything important left in dbg_ctrl() that we don't already > print elsewhere? The PCI core prints the vendor/device and BAR info. > Of course, we don't print the entire capabilities/status/control words > anywhere else. Is that important? No, there doesn't seem a good use for it today. It all changes a short while after it gets printed anyway. > >> --- >> drivers/pci/hotplug/pciehp_hpc.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c >> index da4b020..cbe8e924 100644 >> --- a/drivers/pci/hotplug/pciehp_hpc.c >> +++ b/drivers/pci/hotplug/pciehp_hpc.c >> @@ -747,6 +747,8 @@ static inline void dbg_ctrl(struct controller *ctrl) >> EMI(ctrl) ? "yes" : "no"); >> ctrl_info(ctrl, " Command Completed : %3s\n", >> NO_CMD_CMPL(ctrl) ? "no" : "yes"); >> + ctrl_info(ctrl, " Link Change Reporting: %3s\n", >> + ctrl->link_active_reporting ? "yes" : "no"); >> pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, ®16); >> ctrl_info(ctrl, "Slot Status : 0x%04x\n", reg16); >> pcie_capability_read_word(pdev, PCI_EXP_SLTCTL, ®16); >> @@ -771,7 +773,6 @@ struct controller *pcie_init(struct pcie_device *dev) >> ctrl->slot_cap = slot_cap; >> mutex_init(&ctrl->ctrl_lock); >> init_waitqueue_head(&ctrl->queue); >> - dbg_ctrl(ctrl); >> /* >> * Controller doesn't notify of command completion if the "No >> * Command Completed Support" bit is set in Slot Capability >> @@ -784,10 +785,9 @@ struct controller *pcie_init(struct pcie_device *dev) >> >> /* Check if Data Link Layer Link Active Reporting is implemented */ >> pcie_capability_read_dword(pdev, PCI_EXP_LNKCAP, &link_cap); >> - if (link_cap & PCI_EXP_LNKCAP_DLLLARC) { >> - ctrl_dbg(ctrl, "Link Active Reporting supported\n"); >> + if (link_cap & PCI_EXP_LNKCAP_DLLLARC) >> ctrl->link_active_reporting = 1; >> - } >> + dbg_ctrl(ctrl); >> >> /* Clear all remaining event bits in Slot Status register */ >> pcie_capability_write_word(pdev, PCI_EXP_SLTSTA, >> -- >> 1.7.9.5 >> -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index da4b020..cbe8e924 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -747,6 +747,8 @@ static inline void dbg_ctrl(struct controller *ctrl) EMI(ctrl) ? "yes" : "no"); ctrl_info(ctrl, " Command Completed : %3s\n", NO_CMD_CMPL(ctrl) ? "no" : "yes"); + ctrl_info(ctrl, " Link Change Reporting: %3s\n", + ctrl->link_active_reporting ? "yes" : "no"); pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, ®16); ctrl_info(ctrl, "Slot Status : 0x%04x\n", reg16); pcie_capability_read_word(pdev, PCI_EXP_SLTCTL, ®16); @@ -771,7 +773,6 @@ struct controller *pcie_init(struct pcie_device *dev) ctrl->slot_cap = slot_cap; mutex_init(&ctrl->ctrl_lock); init_waitqueue_head(&ctrl->queue); - dbg_ctrl(ctrl); /* * Controller doesn't notify of command completion if the "No * Command Completed Support" bit is set in Slot Capability @@ -784,10 +785,9 @@ struct controller *pcie_init(struct pcie_device *dev) /* Check if Data Link Layer Link Active Reporting is implemented */ pcie_capability_read_dword(pdev, PCI_EXP_LNKCAP, &link_cap); - if (link_cap & PCI_EXP_LNKCAP_DLLLARC) { - ctrl_dbg(ctrl, "Link Active Reporting supported\n"); + if (link_cap & PCI_EXP_LNKCAP_DLLLARC) ctrl->link_active_reporting = 1; - } + dbg_ctrl(ctrl); /* Clear all remaining event bits in Slot Status register */ pcie_capability_write_word(pdev, PCI_EXP_SLTSTA,