1. 07 5月, 2019 1 次提交
  2. 01 3月, 2019 7 次提交
    • L
      PCI: dwc: skip MSI init if MSIs have been explicitly disabled · 3afc8299
      Lucas Stach 提交于
      Since 7c5925af (PCI: dwc: Move MSI IRQs allocation to IRQ domains
      hierarchical API) the MSI init claims one of the controller IRQs as a
      chained IRQ line for the MSI controller. On some designs, like the i.MX6,
      this line is shared with a PCIe legacy IRQ. When the line is claimed for
      the MSI domain, any device trying to use this legacy IRQs will fail to
      request this IRQ line.
      
      As MSI and legacy IRQs are already mutually exclusive on the DWC core,
      as the core won't forward any legacy IRQs once any MSI has been enabled,
      users wishing to use legacy IRQs already need to explictly disable MSI
      support (usually via the pci=nomsi kernel commandline option). To avoid
      any issues with MSI conflicting with legacy IRQs, just skip all of the
      DWC MSI initalization, including the IRQ line claim, when MSI is disabled.
      
      Fixes: 7c5925af ("PCI: dwc: Move MSI IRQs allocation to IRQ domains hierarchical API")
      Tested-by: NTim Harvey <tharvey@gateworks.com>
      Signed-off-by: NLucas Stach <l.stach@pengutronix.de>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: stable@vger.kernel.org
      3afc8299
    • A
      PCI: dwc: Remove superfluous shifting in definitions · 44ddb77b
      Andrey Smirnov 提交于
      Surrounding definitions no longer use explicit shift, so "<< 0" here
      serve no purpose. Remove them. No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      44ddb77b
    • A
      PCI: dwc: Make use of GENMASK/FIELD_PREP · a991f748
      Andrey Smirnov 提交于
      Convert various multi-bit fields to be defined using GENMASK/FIELD_PREP.
      This way bit field boundaries are defined in a single place only, as
      well as defined in a way that makes it easier to verify them against the
      reference manual. No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      a991f748
    • A
      PCI: dwc: Make use of BIT() in constant definitions · 0e11faa4
      Andrey Smirnov 提交于
      Avoid using explicit left shifts and convert various definitions to
      use BIT() instead. No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      [lorenzo.pieralisi@arm.com: fixed PORT_LOGIC_SPEED_CHANGE redefinition]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      0e11faa4
    • A
      PCI: dwc: Share code for dw_pcie_rd/wr_other_conf() · 689e349a
      Andrey Smirnov 提交于
      Default implementation of pcie_rd_other_conf() and
      dw_pcie_wd_other_conf() share more than 80% of their code. Move shared
      code into a dedicated subroutine and convert pcie_rd_other_conf() and
      dw_pcie_wd_other_conf() to use it. No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      689e349a
    • A
      PCI: dwc: Make use of IS_ALIGNED() · 4f8bbd2f
      Andrey Smirnov 提交于
      Make the intent a bit more clear as well as get rid of explicit
      arithmetic by using IS_ALIGNED() to determine if "addr" is aligned to
      "size". No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      4f8bbd2f
    • A
      PCI: imx6: Add code to request/control "pcie_aux" clock for i.MX8MQ · 5278f651
      Andrey Smirnov 提交于
      The PCIe IP block has an additional clock, "pcie_aux", that needs to
      be controlled by the driver. Add code to support it.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NLucas Stach <l.stach@pengutronix.de>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      Cc: Rob Herring <robh@kernel.org>
      Cc: devicetree@vger.kernel.org
      5278f651
  3. 28 2月, 2019 1 次提交
    • B
      PCI: qcom: Don't deassert reset GPIO during probe · 02b485e3
      Bjorn Andersson 提交于
      Acquiring the reset GPIO low means that reset is being deasserted, this
      is followed almost immediately with qcom_pcie_host_init() asserting it,
      initializing it and then finally deasserting it again, for the link to
      come up.
      
      Some PCIe devices requires a minimum time between the initial deassert
      and subsequent reset cycles. In a platform that boots with the reset
      GPIO asserted this requirement is being violated by this deassert/assert
      pulse.
      
      Acquire the reset GPIO high to prevent this situation by matching the
      state to the subsequent asserted state.
      
      Fixes: 82a82383 ("PCI: qcom: Add Qualcomm PCIe controller driver")
      Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      [lorenzo.pieralisi@arm.com: updated commit log]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NStanimir Varbanov <svarbanov@mm-sol.com>
      Cc: stable@vger.kernel.org
      02b485e3
  4. 21 2月, 2019 1 次提交
  5. 15 2月, 2019 4 次提交
  6. 13 2月, 2019 2 次提交
  7. 04 2月, 2019 4 次提交
  8. 01 2月, 2019 13 次提交
  9. 08 1月, 2019 1 次提交
    • C
      PCI: amlogic: Fix build failure due to missing gpio header · a3869d43
      Corentin Labbe 提交于
      Building the driver when GPIOLIB=n is not selected is causing the following
      compilation failure:
      
        drivers/pci/controller/dwc/pci-meson.c: In function 'meson_pcie_assert_reset':
        drivers/pci/controller/dwc/pci-meson.c:290:2: error: implicit declaration of function 'gpiod_set_value_cansleep'; did you mean 'gpio_set_value_cansleep'? [-Werror=implicit-function-declaration]
          gpiod_set_value_cansleep(mp->reset_gpio, 0);
          ^~~~~~~~~~~~~~~~~~~~~~~~
          gpio_set_value_cansleep
        drivers/pci/controller/dwc/pci-meson.c: In function 'meson_pcie_probe':
        drivers/pci/controller/dwc/pci-meson.c:540:19: error: implicit declaration of function 'devm_gpiod_get'; did you mean 'devm_gpio_free'? [-Werror=implicit-function-declaration]
          mp->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
      		     ^~~~~~~~~~~~~~
      		     devm_gpio_free
        drivers/pci/controller/dwc/pci-meson.c:540:48: error: 'GPIOD_OUT_LOW' undeclared (first use in this function); did you mean 'GPIOF_INIT_LOW'?
          mp->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
      						  ^~~~~~~~~~~~~
      						  GPIOF_INIT_LOW
      
      Add the missing linux/gpio/consumer.h header to fix it.
      
      Fixes: 9c0ef6d3 ("PCI: amlogic: Add the Amlogic Meson PCIe controller driver")
      Signed-off-by: NCorentin Labbe <clabbe@baylibre.com>
      [lorenzo.pieralisi@arm.com: commit log]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      a3869d43
  10. 02 1月, 2019 1 次提交
  11. 19 12月, 2018 2 次提交
  12. 18 12月, 2018 3 次提交