1. 03 May, 2016 1 commit
    • Bjorn Helgaas's avatar
      Merge branches 'pci/host-armada', 'pci/host-designware', 'pci/host-hv',... · 58f8b094
      Bjorn Helgaas authored
      Merge branches 'pci/host-armada', 'pci/host-designware', 'pci/host-hv', 'pci/host-imx6', 'pci/host-keystone', 'pci/host-mvebu', 'pci/host-rcar', 'pci/host-thunder' and 'pci/host-vmd' into next
      
      * pci/host-armada:
        PCI: armada: Add driver for Marvell Armada 7K/8K PCIe controller
        dt-bindings: pci: add DT binding for Marvell Armada 7K/8K PCIe controller
      
      * pci/host-designware:
        PCI: designware: Remove incorrect RC memory base/limit configuration
        PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc()
      
      * pci/host-hv:
        PCI: hv: Report resources release after stopping the bus
      
      * pci/host-imx6:
        ARM: dts: imx6qp: Specify imx6qp version of PCIe core
        PCI: imx6: Implement reset sequence for i.MX6+
        PCI: imx6: Use enum instead of bool for variant indicator
        PCI: imx6: Add DT property for link gen, default to Gen1
        PCI: imx6: Add reset-gpio-active-high boolean property to DT
        ARM: dts: imx6: Fix PCIe reset GPIO polarity on Toradex Apalis Ixora
        PCI: imx6: Add initial imx6sx support
        PCI: imx6: Factor out ref clock enable
        Revert "PCI: imx6: Add support for active-low reset GPIO"
      
      * pci/host-keystone:
        PCI: keystone: Remove unnecessary goto statement
        PCI: keystone: Add error IRQ handler
      
      * pci/host-mvebu:
        PCI: mvebu: Use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS for mvebu_pcie_pm_ops
        PCI: mvebu: Constify mvebu_pcie_pm_ops structure
      
      * pci/host-rcar:
        PCI: rcar: Select PCI_MSI_IRQ_DOMAIN
      
      * pci/host-thunder:
        PCI: thunder: Don't clobber read-only bits in bridge config registers
      
      * pci/host-vmd:
        PCI: Remove return values from pcie_port_platform_notify() and relatives
        PCI/ACPI: Allow all PCIe services on non-ACPI host bridges
      58f8b094
  2. 02 May, 2016 7 commits
  3. 26 Apr, 2016 2 commits
  4. 25 Apr, 2016 2 commits
    • Bjorn Helgaas's avatar
      Merge branches 'pci/enumeration', 'pci/hotplug', 'pci/misc', 'pci/ntb',... · 7f768544
      Bjorn Helgaas authored
      Merge branches 'pci/enumeration', 'pci/hotplug', 'pci/misc', 'pci/ntb', 'pci/thunderbolt' and 'pci/virtualization' into next
      
      * pci/enumeration:
        x86/PCI: Refine PCI support check in pcibios_init()
      
      * pci/hotplug:
        PCI: acpiphp_ibm: Avoid uninitialized variable reference
      
      * pci/misc:
        PCI: Fix spelling errors
      
      * pci/ntb:
        PCI: Add DMA alias quirk for mic_x200_dma
        PCI: Add support for multiple DMA aliases
        PCI: Move informational printk to pci_add_dma_alias()
        PCI: Add pci_add_dma_alias() to abstract implementation
      
      * pci/thunderbolt:
        thunderbolt: Support 1st gen Light Ridge controller
        thunderbolt: Fix typos and magic number
        PCI: Add Intel Thunderbolt device IDs
      
      * pci/virtualization:
        PCI: Work around Intel Sunrise Point PCH incorrect ACS capability
        PCI: Reverse standard ACS vs device-specific ACS enabling
        PCI: Mark Intel i40e NIC INTx masking as broken
      7f768544
    • Murali Karicheri's avatar
      PCI: keystone: Remove unnecessary goto statement · 1e9f8dcf
      Murali Karicheri authored
      Fix the misuse of goto statement in ks_pcie_get_irq_controller_info() as
      simple return is more appropriate for this function.  While at it add an
      error log for absence of interrupt controller node.
      
      [bhelgaas: drop "ret" altogether since we always know the return value]
      Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Rob Herring <robh+dt@kernel.org>
      CC: Pawel Moll <pawel.moll@arm.com>
      CC: Mark Rutland <mark.rutland@arm.com>
      CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
      CC: Kumar Gala <galak@codeaurora.org>
      1e9f8dcf
  5. 20 Apr, 2016 5 commits
    • Tim Harvey's avatar
      PCI: imx6: Add DT property for link gen, default to Gen1 · a5fcec48
      Tim Harvey authored
      Freescale has stated [1] that the LVDS clock source of the IMX6 does not
      pass the PCI Gen2 clock jitter test, therefore unless an external Gen2
      compliant external clock source is present and supplied back to the IMX6
      PCIe core via LVDS CLK1/CLK2 you can not claim Gen2 compliance.
      
      Add a DT property to specify Gen1 vs Gen2 and check this before allowing a
      Gen2 link.
      
      We default to Gen1 if the property is not present because at this time
      there are no IMX6 boards in mainline that 'input' a clock on LVDS
      CLK1/CLK2.
      
      In order to be Gen2 compliant on IMX6 you need to:
      
       - Have a Gen2 compliant external clock generator and route that clock back
         to either LVDS CLK1 or LVDS CLK2 as an input (see IMX6SX-SabreSD
         reference design).
      
       - Specify this clock in the PCIe node in the DT (i.e.,
         IMX6QDL_CLK_LVDS1_IN or IMX6QDL_CLK_LVDS2_IN instead of
         IMX6QDL_CLK_LVDS1_GATE which configures it as a CLK output).
      
      [1] https://community.freescale.com/message/453209Signed-off-by: default avatarTim Harvey <tharvey@gateworks.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarLucas Stach <l.stach@pengutronix.de>
      CC: Fabio Estevam <fabio.estevam@freescale.com>
      CC: Zhu Richard <Richard.Zhu@freescale.com>
      CC: Akshay Bhat <akshay.bhat@timesys.com>
      CC: Rob Herring <robh+dt@kernel.org>
      CC: Shawn Guo <shawnguo@kernel.org>
      a5fcec48
    • Petr Štetiar's avatar
      PCI: imx6: Add reset-gpio-active-high boolean property to DT · 3ea8529a
      Petr Štetiar authored
      Currently the reset-gpio DT property which controls the PCI bus device
      reset signal defaults to active-low reset sequence (L=reset state,
      H=operation state) plus the code in reset function isn't GPIO polarity
      aware - it doesn't matter if the defined reset-gpio is active-low or
      active-high, it will always result into active-low reset sequence.
      
      I've tried to fix it properly and change the reset-gpio reset sequence to
      be polarity-aware, but this patch has been accepted and then reverted as it
      has introduced few backward incompatible issues:
      
      1. Some DTBs, for example, imx6qdl-sabresd, don't define reset-gpio
      polarity correctly:
      
        reset-gpio = <&gpio7 12 0>;
      
      which means that it's defined as active-high, but in reality it's
      active-low; thus it wouldn't work without a DTS fix.
      
      2. The logic in the reset function is inverted:
      
      	gpio_set_value_cansleep(imx6_pcie->reset_gpio, 0)
      	msleep(100);
      	gpio_set_value_cansleep(imx6_pcie->reset_gpio, 1);
      
      so even if some of the i.MX6 boards had reset-gpio polarity defined
      correctly in their DTSes, they would stop working.
      
      As we can't break old DTBs, we can't fix them, so we need to introduce this
      new DT reset-gpio-active-high boolean property so we can support boards
      with active-high reset sequence.
      
      This active-high reset sequence is for example needed on Apalis SoMs, where
      GPIO1_IO28, used to PCIe reset is not connected directly to PERST# PCIe
      signal, but it's ORed with RESETBMCU coming off the PMIC, and thus is
      inverted, active-high.
      
      Tested-by: Tim Harvey <tharvey@gateworks.com>	# Gateworks Ventana boards (which have active-low PERST#)
      Signed-off-by: default avatarPetr Štetiar <ynezz@true.cz>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      3ea8529a
    • Petr Štetiar's avatar
      ARM: dts: imx6: Fix PCIe reset GPIO polarity on Toradex Apalis Ixora · 4f6926e9
      Petr Štetiar authored
      Adding reset-gpio-active-high boolean DT binding property, which we need to
      make PCIe working on Apalis SoMs and not break old DTBs. While at it, I've
      fixed comment and GPIO polarity.
      
      On Apalis SoMs the GPIO1_IO28 used to PCIe reset is not connected directly
      to PERST# PCIe signal, but it's ORed with RESETBMCU coming off the PMIC,
      and thus is inverted, active-high.
      Signed-off-by: default avatarPetr Štetiar <ynezz@true.cz>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      4f6926e9
    • Christoph Fritz's avatar
      PCI: imx6: Add initial imx6sx support · e3c06cd0
      Christoph Fritz authored
      Add initial PCIe support for the imx6 SoC derivate imx6sx.  PCI MSI support
      is untested as the necessary suspend/resume quirk is not included in this
      patch.
      
      This patch is heavily based on patches by Richard Zhu.
      
      [bhelgaas: factor out refclk enable, fix adjacent typos in imx6q-pcie.txt]
      Signed-off-by: default avatarChristoph Fritz <chf.fritz@googlemail.com>
      Acked-by: default avatarRichard Zhu <Richard.Zhu@freescale.com>
      Acked-by: default avatarLucas Stach <l.stach@pengutronix.de>
      e3c06cd0
    • Bjorn Helgaas's avatar
      PCI: imx6: Factor out ref clock enable · 4d1821e7
      Bjorn Helgaas authored
      Factor out ref clock enable to make it cleaner to add imx6sx support.  No
      functional change intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Tested-by: default avatarChristoph Fritz <chf.fritz@googlemail.com>
      4d1821e7
  6. 19 Apr, 2016 3 commits
  7. 15 Apr, 2016 1 commit
  8. 14 Apr, 2016 1 commit
  9. 12 Apr, 2016 1 commit
  10. 11 Apr, 2016 4 commits
  11. 08 Apr, 2016 5 commits
    • Jon Derrick's avatar
      PCI: Remove return values from pcie_port_platform_notify() and relatives · 88a97da1
      Jon Derrick authored
      Now that pcie_port_acpi_setup() always returns 0, make it and its callers
      void functions and stop checking the return values.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarJon Derrick <jonathan.derrick@intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      88a97da1
    • Jon Derrick's avatar
      PCI/ACPI: Allow all PCIe services on non-ACPI host bridges · 52966bd1
      Jon Derrick authored
      Host bridges we discover via ACPI, i.e., PNP0A03 and PNP0A08 devices, may
      have an _OSC method by which the OS can ask the platform for control of
      PCIe features like native hotplug, power management events, AER, etc.
      
      Previously, if we found a bridge without an ACPI device, we assumed we did
      not have permission to use any of these PCIe features.  That seems
      unreasonably restrictive.
      
      If we find no ACPI device, assume we can take control of all PCIe features.
      
      The Intel Volume Management Device (VMD) is one such bridge with no ACPI
      device.  Prior to this change, users had to boot with "pcie_ports=native"
      to get hotplug and other services to work below the VMD Root Port.
      
      [bhelgaas: changelog]
      Suggested-by: default avatarBjorn Helgaas <helgaas@kernel.org>
      Signed-off-by: default avatarJon Derrick <jonathan.derrick@intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      52966bd1
    • Lukas Wunner's avatar
      thunderbolt: Support 1st gen Light Ridge controller · 19bf4d4f
      Lukas Wunner authored
      Add support for the 1st gen Light Ridge controller, which is built into
      these systems:
      
        iMac12,1       2011  21.5"
        iMac12,2       2011  27"
        Macmini5,1     2011  i5 2.3 GHz
        Macmini5,2     2011  i5 2.5 GHz
        Macmini5,3     2011  i7 2.0 GHz
        MacBookPro8,1  2011  13"
        MacBookPro8,2  2011  15"
        MacBookPro8,3  2011  17"
        MacBookPro9,1  2012  15"
        MacBookPro9,2  2012  13"
      
      Light Ridge (CV82524) was the very first copper Thunderbolt controller,
      introduced 2010 alongside its fiber-optic cousin Light Peak (CVL2510).
      Consequently the chip suffers from some teething troubles:
      
        - MSI is broken for hotplug signaling on the downstream bridges: The chip
          just never sends an interrupt.  It requests 32 MSIs for each of its six
          bridges and the pcieport driver only allocates one per bridge.  However
          I've verified that even if 32 MSIs are allocated there's no interrupt
          on hotplug.  The only option is thus to disable MSI, which is also what
          OS X does.  Apparently all Thunderbolt chips up to revision 1 of Cactus
          Ridge 4C are plagued by this issue so quirk those as well.
      
        - The chip supports a maximum hop_count of 32, unlike its successors
          which support only 12.  Fixup ring_interrupt_active() to cope with
          values >= 32.
      
        - Another peculiarity is that the chip supports a maximum of 13 ports
          whereas its successors support 12.  However the additional port (#5)
          seems to be unusable as reading its TB_CFG_PORT config space results in
          TB_CFG_ERROR_INVALID_CONFIG_SPACE.  Add a quirk to mark the port
          disabled on the root switch, assuming that's necessary on all Macs
          using this chip.
      
      Tested-by: Lukas Wunner <lukas@wunner.de> [MacBookPro9,1]
      Tested-by: William Brown <william@blackhats.net.au> [MacBookPro8,2]
      Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarAndreas Noever <andreas.noever@gmail.com>
      19bf4d4f
    • Lukas Wunner's avatar
      thunderbolt: Fix typos and magic number · aae20bb6
      Lukas Wunner authored
      Fix typo in tb_cfg_print_error() message.  Fix bytecount in struct
      tb_drom_entry_port comment.  Replace magic number in tb_switch_alloc().
      Rename tb_sw_set_unpplugged() and TB_CAL_IECS to fix typos.
      
      [bhelgaas: no functional change intended]
      Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarAndreas Noever <andreas.noever@gmail.com>
      aae20bb6
    • Lukas Wunner's avatar
      PCI: Add Intel Thunderbolt device IDs · 1d111406
      Lukas Wunner authored
      Intel Gen 1 and 2 chips use the same ID for NHI, bridges and switch.  Gen 3
      chips and onward use a distinct ID for the NHI.
      
      No functional change intended.
      Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarAndreas Noever <andreas.noever@gmail.com>
      1d111406
  12. 07 Apr, 2016 2 commits
  13. 05 Apr, 2016 3 commits
  14. 03 Apr, 2016 3 commits
    • Linus Torvalds's avatar
      Linux 4.6-rc2 · 9735a227
      Linus Torvalds authored
      9735a227
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4c3b73c6
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc kernel side fixes:
      
         - fix event leak
         - fix AMD PMU driver bug
         - fix core event handling bug
         - fix build bug on certain randconfigs
      
        Plus misc tooling fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/amd/ibs: Fix pmu::stop() nesting
        perf/core: Don't leak event in the syscall error path
        perf/core: Fix time tracking bug with multiplexing
        perf jit: genelf makes assumptions about endian
        perf hists: Fix determination of a callchain node's childlessness
        perf tools: Add missing initialization of perf_sample.cpumode in synthesized samples
        perf tools: Fix build break on powerpc
        perf/x86: Move events_sysfs_show() outside CPU_SUP_INTEL
        perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers
        perf tests: Fix tarpkg build test error output redirection
      4c3b73c6
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7b367f5d
      Linus Torvalds authored
      Pull core kernel fixes from Ingo Molnar:
       "This contains the nohz/atomic cleanup/fix for the fetch_or() ugliness
        you noted during the original nohz pull request, plus there's also
        misc fixes:
      
         - fix liblockdep build bug
         - fix uapi header build bug
         - print more lockdep hash collision info to help debug recent reports
           of hash collisions
         - update MAINTAINERS email address"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        MAINTAINERS: Update my email address
        locking/lockdep: Print chain_key collision information
        uapi/linux/stddef.h: Provide __always_inline to userspace headers
        tools/lib/lockdep: Fix unsupported 'basename -s' in run_tests.sh
        locking/atomic, sched: Unexport fetch_or()
        timers/nohz: Convert tick dependency mask to atomic_t
        locking/atomic: Introduce atomic_fetch_or()
      7b367f5d