• Krzysztof Wilczynski's avatar
    PCI/ACPI: Remove unnecessary struct hotplug_program_ops · 4a2dbedd
    Krzysztof Wilczynski authored
    Move the ACPI-specific structs hpx_type0, hpx_type1, hpx_type2 and
    hpx_type3 to drivers/pci/pci-acpi.c as they are not used anywhere else.
    Then remove the struct hotplug_program_ops that has been shared between
    drivers/pci/probe.c and drivers/pci/pci-acpi.c from drivers/pci/pci.h as it
    is no longer needed.
    
    The struct hotplug_program_ops was added by 87fcf12e ("PCI/ACPI: Remove
    the need for 'struct hotplug_params'") and replaced previously used struct
    hotplug_params enabling the support for the _HPX Type 3 Setting Record that
    was added by f873c51a ("PCI/ACPI: Implement _HPX Type 3 Setting
    Record").
    
    The new struct allowed for the static functions such program_hpx_type0(),
    program_hpx_type1(), etc., from the drivers/pci/probe.c to be called from
    the function pci_acpi_program_hp_params() in the drivers/pci/pci-acpi.c.
    
    Previously a programming of _HPX Type 0 was as follows:
    
      drivers/pci/probe.c:
    
        program_hpx_type0()
        ...
        pci_configure_device()
          hp_ops = {
            .program_type0 = program_hpx_type0,
            ...
          }
          pci_acpi_program_hp_params(&hp_ops)
    
      drivers/pci/pci-acpi.c:
    
        pci_acpi_program_hp_params(&hp_ops)
          acpi_run_hpx(hp_ops)
            decode_type0_hpx_record()
              hp_ops->program_type0     # program_hpx_type0() called via hp_ops
    
    After the ACPI-specific functions, structs, enums, etc., have been moved to
    drivers/pci/pci-acpi.c there is no need for the hotplug_program_ops as all
    of the _HPX Type 0, 1, 2 and 3 are directly accessible.
    
    Link: https://lore.kernel.org/r/20190827094951.10613-4-kw@linux.comSigned-off-by: default avatarKrzysztof Wilczynski <kw@linux.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    4a2dbedd
probe.c 81.4 KB