Re: [PATCH 2 0/9] PCI hotplug: clean up slot configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bjorn Helgaas wrote:
On Sunday 30 August 2009 11:08:31 pm Kenji Kaneshige wrote:
Bjorn Helgaas wrote:
These patches clean up and unify the PCI slot configuration across
the acpiphp, pciehp, and shpchp drivers.  When these drivers detect
a newly-added device, they configure the bus.  On ACPI systems, this
uses PCI bus settings from _HPP or _HPX methods.

Previously, each driver handled this separately with similar but not
quite identical code.  This series adds a single pci_configure_slot()
function and changes each driver to use it.

Changes from initial post to v2:
    - use static inline empty function rather than #define for non-ACPI (Eike)
    - export pci_configure_slot()
    - add comment about why we don't program default PCI settings for PCIe
    - tidy up PCIe setting check for PCIe device
    - move pci_configure_slot() and related functions to acpi_pcihp.c (Kenji)
    - make acpi_get_hp_params() static

---

Bjorn Helgaas (9):
      PCI hotplug: acpiphp: remove superfluous _HPP/_HPX evaluation
      PCI hotplug: acpiphp: don't cache hotplug_params in acpiphp_bridge
      PCI hotplug: rename acpi_get_hp_params_from_firmware() to acpi_get_hp_params()
      PCI hotplug: add pci_configure_slot()
      PCI hotplug: pciehp: use generic pci_configure_slot()
      PCI hotplug: shpchp: use generic pci_configure_slot()
      PCI hotplug: acpiphp: use generic pci_configure_slot()
      PCI hotplug: clean up acpi_run_hpp()
      PCI hotplug: make acpi_get_hp_params() static


 drivers/pci/hotplug/acpi_pcihp.c   |  269 ++++++++++++++++++++++++++----------
drivers/pci/hotplug/acpiphp.h | 3 drivers/pci/hotplug/acpiphp_glue.c | 95 +------------
 drivers/pci/hotplug/pciehp.h       |    9 -
 drivers/pci/hotplug/pciehp_pci.c   |  132 ------------------
drivers/pci/hotplug/pcihp_slot.c | 0 drivers/pci/hotplug/shpchp.h | 9 -
 drivers/pci/hotplug/shpchp_pci.c   |   62 --------
 include/linux/pci_hotplug.h        |    5 -
 9 files changed, 205 insertions(+), 379 deletions(-)
 create mode 100644 drivers/pci/hotplug/pcihp_slot.c

Hi Bjorn-san,

I tried the set of patches on both SHPC and PCI-E hotplug slots
using shpchp driver and pciehp driver respectively and confirmed
it works well (I also confirmed there are no difference on
hot-plugging in PCI/PCIE configuration space between before and
after applying set of patches).

Unfortunately, I didn't test acpiphp due to the lack of testing
environment. So I can do only reviewing for acpiphp. In my
understanding, your patches are not only for cleanup but it also
enables acpiphp to program _HPX type2 parameters on PCI-E hotplug
slots. If I must say something about acpiphp, it would be good
if there is an description about it.

Yes, you're right, I should mention that change.  Oh, actually,
I *did* mention it in the changelog for patch 7/9.  Do you think
I should call that out more?

Sorry, I overlooked it. I think it is enough.


By the way, I think we can do further cleanup regarding hotplug
parameters. I think struct hpp_type? and struct hotplug_params
in include/linux/pci_hotplug.h can be moved to acpi_pcihp.c like
attached below.

I'll take a look at this.  It's connected with a mistake I made
in version 2 of this series: by moving pci_configure_slot()
entirely into acpi_pcihp.c, I inadvertently removed the SHPC path
that configured default PCI settings for non-ACPI systems.

I'll have to work on that a bit more.  Thanks a lot for testing
and reviewing these!


I was wondering if I could ask you a favor. The program_hpp_type0()
programs latency timer and cache-line size even for PCI-E, but I
don't think we need to program those values for PCI-E. It is original
pciehp's behavior, but could you consider fixing it in you set of
patches?

Thanks,
Kenji Kaneshige



--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux