Skip to content
Permalink
Mauro-Carvalho…
Switch branches/tags

Commits on Oct 18, 2021

  1. PCI: kirin: Allow removing the driver

    Now that everything is in place at the poweroff sequence,
    this driver can use module_platform_driver(), which allows
    it to be removed.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  2. PCI: kirin: fix poweroff sequence

    This driver currently doesn't call dw_pcie_host_deinit()
    at the .remove() callback. This can cause an OOPS if the driver
    is unbound.
    
    While here, add a poweroff function, in order to abstract
    between the internal and external PHY logic.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  3. PCI: kirin: Add power_off support for Kirin 960 PHY

    In order to prepare for module unload, add a power_off method
    for HiKey 960.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  4. PCI: kirin: Allow building it as a module

    There's nothing preventing this driver to be loaded as a
    module. So, change its config from bool to tristate.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  5. PCI: kirin: Add MODULE_* macros

    This driver misses the MODULE_* macros. Add them.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  6. PCI: kirin: Add Kirin 970 compatible

    Now that everything is in place, add a compatible for Kirin 970.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  7. PCI: kirin: Add support for bridge slot DT schema

    On HiKey970, there's a PEX 8606 PCI bridge on its PHY with
    6 lanes. Only 4 lanes are connected:
    
    	lane 0 - connected to Kirin 970;
    	lane 4 - M.2 slot;
    	lane 5 - mini PCIe slot;
    	lane 6 - in-board Ethernet controller.
    
    Each lane has its own PERST# gpio pin, and needs a clock
    request.
    
    Add support to parse a DT schema containing the above data.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  8. PCI: kirin: Use regmap for APB registers

    The PHY layer need to access APB registers too, for Kirin 970.
    So, place them into a named regmap.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  9. PCI: kirin: Add support for a PHY layer

    The pcie-kirin driver contains both PHY and generic PCI driver
    on it.
    
    The best would be, instead, to support a PCI PHY driver, making
    the driver more generic.
    
    However, it is too late to remove the Kirin 960 PHY, as a change
    like that would make the DT schema incompatible with past versions.
    
    So, add support for an external PHY driver without removing the
    existing Kirin 960 PHY from it.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021
  10. PCI: kirin: Reorganize the PHY logic inside the driver

    The pcie-kirin PCIe driver contains internally a PHY interface for
    Kirin 960.
    
    As the next patches will add support for using an external PHY
    driver, reorganize the driver in a way that the PHY part
    will be self-contained.
    
    This could be moved to a separate PHY driver, but a change
    like that would mean a non-backward-compatible DT schema
    change.
    
    Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    mchehab authored and intel-lab-lkp committed Oct 18, 2021

Commits on Oct 16, 2021

  1. Merge branch 'remotes/lorenzo/pci/xgene'

    - Use PCI_VENDOR_ID_AMCC macro instead of defining a custom macro in
      pci-xgene.c (Pali Rohár)
    
    * remotes/lorenzo/pci/xgene:
      PCI: xgene: Use PCI_VENDOR_ID_AMCC macro
    bjorn-helgaas committed Oct 16, 2021
  2. Merge branch 'remotes/lorenzo/pci/vmd'

    - Assign a number to each VMD controller to distinguish them in
      /proc/interrupts (Chunguang Xu)
    
    - Don't disable VMD MSI-X remapping if IOMMU remapping is enabled (Adrian
      Huang)
    
    - Add Kconfig dependency on !UML for allyesconfig build issue (Johannes
      Berg)
    
    * remotes/lorenzo/pci/vmd:
      PCI: vmd: depend on !UML
      PCI: vmd: Do not disable MSI-X remapping if interrupt remapping is enabled by IOMMU
      PCI: vmd: Assign a number to each VMD controller
    bjorn-helgaas committed Oct 16, 2021
  3. Merge branch 'pci/host/rcar'

    - Remove unneeded includes (Geert Uytterhoeven)
    
    * pci/host/rcar:
      PCI: rcar-host: Remove unneeded includes
      PCI: rcar-ep: Remove unneeded includes
    bjorn-helgaas committed Oct 16, 2021
  4. Merge branch 'remotes/lorenzo/pci/qcom'

    - Add Qualcomm PCIe Endpoint controller driver and DT binding (Manivannan
      Sadhasivam)
    
    - Add qcom struct for device-specific details in match data (Prasad
      Malisetty)
    
    - Switch pcie_1_pipe_clk_src from TCXO to pipe clock after PHY init in
      SC7280 (Prasad Malisetty)
    
    - Add .compatible device ID for SC8180x platform (Bjorn Andersson)
    
    * remotes/lorenzo/pci/qcom:
      PCI: qcom: Add sc8180x compatible
      PCI: qcom: Switch pcie_1_pipe_clk_src after PHY init in SC7280
      PCI: qcom: Replace ops with struct pcie_cfg in pcie match data
      MAINTAINERS: Add entry for Qualcomm PCIe Endpoint driver and binding
      PCI: qcom-ep: Add Qualcomm PCIe Endpoint controller driver
      dt-bindings: PCI: Add Qualcomm PCIe Endpoint controller
    bjorn-helgaas committed Oct 16, 2021
  5. Merge branch 'remotes/lorenzo/pci/imx6'

    - Remove unused assignment (Krzysztof Wilczyński)
    
    * remotes/lorenzo/pci/imx6:
      PCI: imx6: Remove unused assignment to variable ret
    bjorn-helgaas committed Oct 16, 2021
  6. Merge branch 'remotes/lorenzo/pci/endpoint'

    - Use sysfs_emit() in "show" functions instead of sprintf() to avoid buffer
      overruns (Kunihiko Hayashi)
    
    * remotes/lorenzo/pci/endpoint:
      PCI: endpoint: Use sysfs_emit() in "show" functions
    bjorn-helgaas committed Oct 16, 2021
  7. Merge branch 'remotes/lorenzo/pci/dwc'

    - Export dw_pcie_ep_reset_bar(), dw_pcie_link_up() so more drivers can be
      modular (Luca Ceresoli)
    
    - Allow dra7xx host and endpoint drivers to be modules (Luca Ceresoli)
    
    - Enable dra7xx optional external clock if present (Luca Ceresoli)
    
    - Clean up Kconfig dependencies for PCIE_DW_HOST- and PCIE_DW_EP-based
      drivers (Andy Shevchenko)
    
    - Remove visconti redundant dev_err() after platform_get_irq_byname()
      failure (Krzysztof Wilczyński)
    
    - Run dwc .host_init() method before registering MSI interrupt handler so
      we have a chance to deal with pending interrupts left by bootloader
      (Bjorn Andersson)
    
    - Serialize uniphier INTx masking/unmasking (Kunihiko Hayashi)
    
    * remotes/lorenzo/pci/dwc:
      PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation
      PCI: dwc: Perform host_init() before registering msi
      PCI: visconti: Remove surplus dev_err() when using platform_get_irq_byname()
      PCI: dwc: Clean up Kconfig dependencies (PCIE_DW_EP)
      PCI: dwc: Clean up Kconfig dependencies (PCIE_DW_HOST)
      PCI: dra7xx: Get an optional clock
      PCI: dra7xx: Remove unused include
      PCI: dra7xx: Make it a kernel module
      PCI: dwc: Export more symbols to allow modular drivers
    bjorn-helgaas committed Oct 16, 2021
  8. Merge branch 'remotes/lorenzo/pci/dt'

    - Add Rockchip SoC PCIe controller DT bindings (Simon Xue)
    
    * remotes/lorenzo/pci/dt:
      dt-bindings: rockchip: Add DesignWare based PCIe controller
    bjorn-helgaas committed Oct 16, 2021
  9. Merge branch 'remotes/lorenzo/pci/apple'

    - Make of_phandle_args_to_fwspec() generally available (Marc Zyngier)
    
    - Allow matching of interrupt-maps local to interrupt controller or PCI
      device (Marc Zyngier)
    
    - Add Apple SoC (e.g., M1) PCIe host controller driver, which enables
      access to USB type-A, Ethernet, Wi-Fi, Bluetooth devices; these require
      additional drivers of their own (Alyssa Rosenzweig)
    
    - Add apple INTx, per-port, and MSI interrupt support (Marc Zyngier)
    
    - Configure apple Requester-ID-to-Stream-ID mapper for IOMMU (DART) support
      (Marc Zyngier)
    
    * remotes/lorenzo/pci/apple:
      PCI: apple: Configure RID to SID mapper on device addition
      iommu/dart: Exclude MSI doorbell from PCIe device IOVA range
      PCI: apple: Implement MSI support
      PCI: apple: Add INTx and per-port interrupt support
      PCI: apple: Set up reference clocks when probing
      PCI: apple: Add initial hardware bring-up
      PCI: of: Allow matching of an interrupt-map local to a PCI device
      of/irq: Allow matching of an interrupt-map local to an interrupt controller
      irqdomain: Make of_phandle_args_to_fwspec() generally available
    bjorn-helgaas committed Oct 16, 2021
  10. Merge branch 'remotes/lorenzo/pci/aardvark'

    - Define macros for PCI_EXP_DEVCTL_PAYLOAD_* (Pali Rohár)
    
    - Set Max Payload Size to 512 bytes per Marvell spec (Pali Rohár)
    
    - Downgrade PIO Response Status messages to debug level (Marek Behún)
    
    - Preserve CRS SV (Config Request Retry Software Visibility) bit in
      emulated Root Control register (Pali Rohár)
    
    - Fix issue in configuring reference clock (Pali Rohár)
    
    - Don't clear status bits for masked interrupts (Pali Rohár)
    
    - Don't mask unused interrupts (Pali Rohár)
    
    - Avoid code repetition in advk_pcie_rd_conf() (Marek Behún)
    
    - Retry config accesses on CRS response (Pali Rohár)
    
    - Simplify emulated Root Capabilities initialization (Pali Rohár)
    
    - Fix several link training issues (Pali Rohár)
    
    - Fix link-up checking via LTSSM (Pali Rohár)
    
    - Fix reporting of Data Link Layer Link Active (Pali Rohár)
    
    * remotes/lorenzo/pci/aardvark:
      PCI: aardvark: Fix reporting Data Link Layer Link Active
      PCI: aardvark: Fix checking for link up via LTSSM state
      PCI: aardvark: Fix link training
      PCI: aardvark: Simplify initialization of rootcap on virtual bridge
      PCI: aardvark: Implement re-issuing config requests on CRS response
      PCI: aardvark: Deduplicate code in advk_pcie_rd_conf()
      PCI: aardvark: Do not unmask unused interrupts
      PCI: aardvark: Do not clear status bits of masked interrupts
      PCI: aardvark: Fix configuring Reference clock
      PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
      PCI: aardvark: Don't spam about PIO Response Status
      PCI: aardvark: Fix PCIe Max Payload Size setting
      PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
    bjorn-helgaas committed Oct 16, 2021
  11. Merge branch 'pci/misc'

    - Tidy setup-irq.c comments (Pranay Sanghai)
    
    - Fix misspellings (Krzysztof Wilczyński)
    
    - Fix sprintf(), sscanf() format mismatches (Krzysztof Wilczyński)
    
    - Tidy cpqphp code formatting (Krzysztof Wilczyński)
    
    * pci/misc:
      PCI: cpqphp: Format if-statement code block correctly
      PCI: Use unsigned to match sscanf("%x") in pci_dev_str_match_path()
      PCI: hv: Remove unnecessary use of %hx
      PCI: Correct misspelled and remove duplicated words
      PCI: Tidy comments
    bjorn-helgaas committed Oct 16, 2021
  12. Merge branch 'pci/vpd'

    - Add pci_read_vpd_any(), pci_write_vpd_any() to access VPD at arbitrary
      offsets (Heiner Kallweit)
    
    - Use VPD API to replace custom code in cxgb3 driver (Heiner Kallweit)
    
    * pci/vpd:
      cxgb3: Remove seeprom_write and use VPD API
      cxgb3: Use VPD API in t3_seeprom_wp()
      cxgb3: Remove t3_seeprom_read and use VPD API
      PCI/VPD: Use pci_read_vpd_any() in pci_vpd_size()
      PCI/VPD: Add pci_read/write_vpd_any()
    bjorn-helgaas committed Oct 16, 2021
  13. Merge branch 'pci/virtualization'

    - Avoid bus resets on Atheros QCA6174, since they hang (Ingmar Klein)
    
    - Use store and forward mode on Pericom PI7C9X2G switches to avoid ACS
      erratum with ACS P2P Request Redirect (Nathan Rossi)
    
    * pci/virtualization:
      PCI: Add ACS quirk for Pericom PI7C9X2G switches
      PCI: Mark Atheros QCA6174 to avoid bus reset
    bjorn-helgaas committed Oct 16, 2021
  14. Merge branch 'pci/sysfs'

    - Check for CAP_SYS_ADMIN before validating sysfs user input, not after
      (Krzysztof Wilczyński)
    
    - Always return -EINVAL from sysfs "store" functions for invalid user input
      instead of -EINVAL sometimes and -ERANGE others (Krzysztof Wilczyński)
    
    - Use kstrtobool() directly instead of the strtobool() wrapper (Krzysztof
      Wilczyński)
    
    * pci/sysfs:
      PCI: Use kstrtobool() directly, sans strtobool() wrapper
      PCI/sysfs: Return -EINVAL consistently from "store" functions
      PCI/sysfs: Check CAP_SYS_ADMIN before parsing user input
    
    # Conflicts:
    #	drivers/pci/iov.c
    bjorn-helgaas committed Oct 16, 2021
  15. Merge branch 'pci/switchtec'

    - Return error to application when command execution fails because an
      out-of-band reset has cleared the device BARs, Memory Space Enable, etc
      (Kelvin Cao)
    
    - Fix MRPC error status handling issue (Kelvin Cao)
    
    - Mask out other bits when reading of management VEP instance ID (Kelvin
      Cao)
    
    - Return EOPNOTSUPP instead of ENOTSUPP from sysfs show functions (Kelvin
      Cao)
    
    - Add check of event support (Logan Gunthorpe)
    
    * pci/switchtec:
      PCI/switchtec: Add check of event support
      PCI/switchtec: Replace ENOTSUPP with EOPNOTSUPP
      PCI/switchtec: Update the way of getting management VEP instance ID
      PCI/switchtec: Fix a MRPC error status handling issue
      PCI/switchtec: Error out MRPC execution when MMIO reads fail
    bjorn-helgaas committed Oct 16, 2021
  16. Merge branch 'pci/resource'

    - Coalesce host bridge contiguous apertures to allow P2P bridge windows
      that span several contiguous host bridge apertures (Kai-Heng Feng)
    
    * pci/resource:
      PCI: Coalesce host bridge contiguous apertures
    bjorn-helgaas committed Oct 16, 2021
  17. Merge branch 'pci/portdrv'

    - Don't setup portdrv IRQs if there are no port drivers that use them, to
      conserve vectors and avoid spurious events (Jan Kiszka)
    
    * pci/portdrv:
      PCI/portdrv: Do not setup up IRQs if there are no users
    bjorn-helgaas committed Oct 16, 2021
  18. Merge branch 'pci/p2pdma'

    - Apply bus offset correctly in DMA address calculation, which used the
      wrong sign before (Wang Lu)
    
    * pci/p2pdma:
      PCI/P2PDMA: Apply bus offset correctly in DMA address calculation
    bjorn-helgaas committed Oct 16, 2021
  19. Merge branch 'pci/hotplug'

    - Ignore Link Down/Up caused by error-induced Hot Reset so endpoint driver
      can remain bound to device during error recovery (Lukas Wunner)
    
    - Remove unused resume err_handler (Lukas Wunner)
    
    - Remove unused pcie_port_bus_{,un}register() declarations (Lukas Wunner)
    
    - Skip compiling err.c when CONFIG_PCIEAER not set (Lukas Wunner)
    
    * pci/hotplug:
      PCI/ERR: Reduce compile time for CONFIG_PCIEAER=n
      PCI/portdrv: Remove unused pcie_port_bus_{,un}register() declarations
      PCI/portdrv: Remove unused resume err_handler
      PCI: pciehp: Ignore Link Down/Up caused by error-induced Hot Reset
      PCI/portdrv: Rename pm_iter() to pcie_port_device_iter()
    bjorn-helgaas committed Oct 16, 2021
  20. Merge branch 'pci/driver'

    - Drop the struct pci_dev.driver pointer, which is redundant with the
      struct device.driver pointer (Uwe Kleine-König)
    
    * pci/driver:
      PCI: Remove struct pci_dev->driver
      PCI: Use to_pci_driver() instead of pci_dev->driver
      x86/pci/probe_roms: Use to_pci_driver() instead of pci_dev->driver
      perf/x86/intel/uncore: Use to_pci_driver() instead of pci_dev->driver
      powerpc/eeh: Use to_pci_driver() instead of pci_dev->driver
      usb: xhci: Use to_pci_driver() instead of pci_dev->driver
      cxl: Use to_pci_driver() instead of pci_dev->driver
      cxl: Factor out common dev->driver expressions
      xen/pcifront: Use to_pci_driver() instead of pci_dev->driver
      xen/pcifront: Drop pcifront_common_process() tests of pcidev, pdrv
      nfp: use dev_driver_string() instead of pci_dev->driver->name
      mlxsw: pci: Use dev_driver_string() instead of pci_dev->driver->name
      net: marvell: prestera: use dev_driver_string() instead of pci_dev->driver->name
      net: hns3: use dev_driver_string() instead of pci_dev->driver->name
      crypto: hisilicon - use dev_driver_string() instead of pci_dev->driver->name
      powerpc/eeh: Use dev_driver_string() instead of struct pci_dev->driver->name
      ssb: Use dev_driver_string() instead of pci_dev->driver->name
      bcma: simplify reference to driver name
      crypto: qat - simplify adf_enable_aer()
      scsi: message: fusion: Remove unused mpt_pci driver .probe() 'id' parameter
      PCI/ERR: Factor out common dev->driver expressions
      PCI: Drop pci_device_probe() test of !pci_dev->driver
      PCI: Drop pci_device_remove() test of pci_dev->driver
      PCI: Return NULL for to_pci_driver(NULL)
    bjorn-helgaas committed Oct 16, 2021
  21. Merge branch 'pci/enumeration'

    - Rename pcibios_add_device() to pcibios_device_add() since it's called
      from pci_device_add() (Oliver O'Halloran)
    
    - Don't try to enable AtomicOps on VFs, since they can only be enabled on
      the PF (Selvin Xavier)
    
    * pci/enumeration:
      PCI: Do not enable AtomicOps on VFs
      PCI: Rename pcibios_add_device() to pcibios_device_add()
    bjorn-helgaas committed Oct 16, 2021
  22. Merge branch 'pci/acpi'

    - Simplify _OSC negotiation with platform for control of PCIe features
      (Joerg Roedel)
    
    * pci/acpi:
      PCI/ACPI: Check for _OSC support in acpi_pci_osc_control_set()
      PCI/ACPI: Move _OSC query checks to separate function
      PCI/ACPI: Move supported and control calculations to separate functions
      PCI/ACPI: Remove OSC_PCI_SUPPORT_MASKS and OSC_PCI_CONTROL_MASKS
    bjorn-helgaas committed Oct 16, 2021
  23. PCI/ERR: Reduce compile time for CONFIG_PCIEAER=n

    The sole non-static function in err.c, pcie_do_recovery(), is only
    called from:
    
    * aer.c (if CONFIG_PCIEAER=y)
    * dpc.c (if CONFIG_PCIE_DPC=y, which depends on CONFIG_PCIEAER)
    * edr.c (if CONFIG_PCIE_EDR=y, which depends on CONFIG_PCIE_DPC)
    
    Thus, err.c need not be compiled if CONFIG_PCIEAER=n.
    
    Also, pci_uevent_ers() and pcie_clear_device_status(), which are called
    from err.c, can be #ifdef'ed away unless CONFIG_PCIEAER=y.
    
    Since x86_64_defconfig doesn't enable CONFIG_PCIEAER, this change may
    slightly reduce compile time for anyone doing a test build with that
    config.
    
    Link: https://lore.kernel.org/r/98f9041151268c1c035ab64cca320ad86803f64a.1627638184.git.lukas@wunner.de
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    l1k authored and bjorn-helgaas committed Oct 16, 2021

Commits on Oct 15, 2021

  1. PCI/portdrv: Remove unused pcie_port_bus_{,un}register() declarations

    Commit c6c889d ("PCI/portdrv: Remove pcie_port_bus_type link order
    dependency") removed pcie_port_bus_{,un}register() but erroneously
    retained their declarations in portdrv.h.  Remove them as well.
    
    Link: https://lore.kernel.org/r/7fd76b0591c37287ab94d911d8fd9ab9a2afcd16.1627638184.git.lukas@wunner.de
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    l1k authored and bjorn-helgaas committed Oct 15, 2021
  2. PCI/portdrv: Remove unused resume err_handler

    Commit 3e41a31 ("PCI/AER: Remove unused aer_error_resume()")
    removed the resume err_handler from AER.  Since no other port service
    implements the callback, support for it can be removed from portdrv.
    It can be revived later if need be, preferably by re-using the
    pcie_port_device_iter() iterator.
    
    Link: https://lore.kernel.org/r/25334149b604e005058aeb0fdf51e01f991d5d74.1627638184.git.lukas@wunner.de
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Keith Busch <kbusch@kernel.org>
    l1k authored and bjorn-helgaas committed Oct 15, 2021
Older