1. 14 8月, 2015 11 次提交
  2. 12 8月, 2015 2 次提交
    • A
      PCI: Add ACS quirks for Intel I219-LM/V · 95e16587
      Alex Williamson 提交于
      The Intel 100-series chipset now includes the integrated Ethernet as part
      of a multifunction package.  The Ethernet function does not include native
      ACS support, but Intel confirms that the device is not capable of peer-to-
      peer within the package.  We can therefore quirk it to expose the
      isolation.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NJohn Ronciak <john.ronciak@gmail.com>
      95e16587
    • R
      PCI: Kill off set_irq_flags() usage · 3e146753
      Rob Herring 提交于
      set_irq_flags is ARM-specific with custom flags which have genirq
      equivalents.  Convert drivers to use the genirq interfaces directly, so we
      can kill off set_irq_flags.  The translation of flags is as follows:
      
        IRQF_VALID -> !IRQ_NOREQUEST
        IRQF_PROBE -> !IRQ_NOPROBE
        IRQF_NOAUTOEN -> IRQ_NOAUTOEN
      
      For IRQs managed by an irqdomain, the irqdomain core code handles clearing
      and setting IRQ_NOREQUEST already, so there is no need to do this in .map()
      functions, and we can simply remove the set_irq_flags calls.  Some users
      also modify IRQ_NOPROBE, and this has been maintained although it is not
      clear that is really needed.  There appears to be a great deal of blind
      copy and paste of this code.
      Signed-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NJingoo Han <jingoohan1@gmail.com>
      CC: Kishon Vijay Abraham I <kishon@ti.com>
      CC: Murali Karicheri <m-karicheri2@ti.com>
      CC: Thierry Reding <thierry.reding@gmail.com>
      CC: Stephen Warren <swarren@wwwdotorg.org>
      CC: Alexandre Courbot <gnurou@gmail.com>
      CC: Jingoo Han <jingoohan1@gmail.com>
      CC: Pratyush Anand <pratyush.anand@gmail.com>
      CC: Simon Horman <horms@verge.net.au>
      CC: Michal Simek <michal.simek@xilinx.com>
      CC: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
      3e146753
  3. 11 8月, 2015 3 次提交
    • B
      PCI: pciehp: Remove ignored MRL sensor interrupt events · 2db0f71f
      Bjorn Helgaas 提交于
      We queued interrupt events for the MRL being opened or closed, but the code
      in interrupt_event_handler() that handles these events ignored them.
      
      Stop enabling MRL interrupts and remove the ignored events.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      2db0f71f
    • B
      PCI: pciehp: Remove unused interrupt events · 58fa2405
      Bjorn Helgaas 提交于
      The list of interrupt events (INT_BUTTON_IGNORE, INT_PRESENCE_ON, etc.) was
      copied from other hotplug drivers, but pciehp doesn't use them all.
      
      Remove the interrupt events that aren't used by pciehp.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      58fa2405
    • J
      PCI: pciehp: Handle invalid data when reading from non-existent devices · 1469d17d
      Jarod Wilson 提交于
      It's platform-dependent, but an MMIO read to a non-existent PCI device
      generally returns data with all bits set.  This happens when the host
      bridge or Root Complex times out waiting for a response from the device and
      fabricates return data to complete the CPU's read.
      
      One example, reported in the bugzilla below, involved this hierarchy:
      
        pci 0000:00:1c.0: PCI bridge to [bus 02-3a] Root Port
        pci 0000:02:00.0: PCI bridge to [bus 03-0a] Upstream Port
        pci 0000:03:03.0: PCI bridge to [bus 05-07] Downstream Port
        pci 0000:05:00.0: PCI bridge to [bus 06-07] Thunderbolt Upstream Port
        pci 0000:06:00.0: PCI bridge to [bus 07]    Thunderbolt Downstream Port
        pci 0000:07:00.0: BCM57762 NIC
      
      Unplugging the Thunderbolt switch and the NIC below it resulted in this:
      
        pciehp 0000:03:03.0: Surprise Removal
        tg3 0000:07:00.0: tg3_abort_hw timed out, TX_MODE_ENABLE will not clear MAC_TX_MODE=ffffffff
        pciehp 0000:06:00.0: unloading service driver pciehp
        pciehp 0000:06:00.0: pcie_isr: intr_loc 11f
        pciehp 0000:06:00.0: Switch interrupt received
        pciehp 0000:06:00.0: Latch open on Slot
        pciehp 0000:06:00.0: Attention button interrupt received
        pciehp 0000:06:00.0: Button pressed on Slot
        pciehp 0000:06:00.0: Presence/Notify input change
        pciehp 0000:06:00.0: Card present on Slot
        pciehp 0000:06:00.0: Power fault interrupt received
        pciehp 0000:06:00.0: Data Link Layer State change
        pciehp 0000:06:00.0: Link Up event
      
      The pciehp driver correctly noticed that the Thunderbolt switch (05:00.0
      and 06:00.0) and NIC (07:00.0) had been removed, and it called their driver
      remove methods.
      
      Since the NIC was already gone, tg3 received 0xffffffff when it tried to
      read from the device.  The resulting timeout is a tg3 issue and not of
      interest here.
      
      Similarly, since the 06:00.0 Thunderbolt switch was already gone,
      pcie_isr() received 0xffff when it tried to read PCI_EXP_SLTSTA, and pciehp
      thought that was valid status showing that many events had happened: the
      latch had been opened, the attention button had been pressed, a card was
      now present, and the link was now up.  These are all wrong, of course, but
      pciehp went on to try to power up and enumerate devices below the
      non-existent bridge:
      
        pciehp 0000:06:00.0: PCI slot - powering on due to button press
        pciehp 0000:06:00.0: Surprise Insertion
        pci 0000:07:00.0 id reading try 50 times with interval 20 ms to get ffffffff
      
      [bhelgaas: changelog, also check in pcie_poll_cmd() & pcie_do_write_cmd()]
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=99841Suggested-by: NBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      1469d17d
  4. 05 8月, 2015 2 次提交
    • B
      Merge branches 'pci/irq', 'pci/misc', 'pci/resource' and 'pci/virtualization' into next · 5a4f3cf0
      Bjorn Helgaas 提交于
      * pci/irq:
        PCI/MSI: Free legacy IRQ when enabling MSI/MSI-X
        PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed
        PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()
        PCI: Add pcibios_alloc_irq() and pcibios_free_irq()
      
      * pci/misc:
        PCI: Remove unused "pci_probe" flags
        PCI: Add VPD function 0 quirk for Intel Ethernet devices
        PCI: Add dev_flags bit to access VPD through function 0
        PCI / ACPI: Fix pci_acpi_optimize_delay() comment
        PCI: Remove a broken link in quirks.c
        PCI: Remove useless redundant code
        PCI: Simplify pci_find_(ext_)capability() return value checks
        PCI: Move PCI_FIND_CAP_TTL to pci.h and use it in quirks
        PCI: Add pcie_downstream_port() (true for Root and Switch Downstream Ports)
        PCI: Fix pcie_port_device_resume() comment
        PCI: Shift PCI_CLASS_NOT_DEFINED consistently with other classes
        PCI: Revert aeb30016 ("PCI: add Intel USB specific reset method")
        PCI: Fix TI816X class code quirk
        PCI: Fix generic NCR 53c810 class code quirk
        PCI: Use PCI_CLASS_SERIAL_USB instead of bare number
        PCI: Add quirk for Intersil/Techwell TW686[4589] AV capture cards
        PCI: Remove Intel Cherrytrail D3 delays
      
      * pci/resource:
        PCI: Call pci_read_bridge_bases() from core instead of arch code
      
      * pci/virtualization:
        PCI: Restore ACS configuration as part of pci_restore_state()
      5a4f3cf0
    • B
      Merge branches 'pci/host-designware', 'pci/host-xgene' and 'pci/host-xilinx' into next · cd66d5c3
      Bjorn Helgaas 提交于
      * pci/host-designware:
        PCI: designware: Don't complain missing *config* reg space if va_cfg0 is set
      
      * pci/host-xgene:
        PCI: xgene: Add support for a 64-bit prefetchable memory window
        arm64: dts: Add APM X-Gene PCIe 64-bit prefetchable window
        PCI: xgene: Drop owner assignment from platform_driver
      
      * pci/host-xilinx:
        PCI: xilinx: Check for MSI interrupt flag before handling as INTx
      cd66d5c3
  5. 31 7月, 2015 6 次提交
  6. 28 7月, 2015 1 次提交
    • B
      PCI: Remove unused "pci_probe" flags · 24b390aa
      Bjorn Helgaas 提交于
      The following flags are only used on x86, but they got copied to FR-V,
      MN10300, and SuperH:
      
        PCI_PROBE_BIOS
        PCI_PROBE_CONF1
        PCI_PROBE_CONF2
        PCI_ASSIGN_ROMS
        PCI_NO_CHECKS
        PCI_BIOS_IRQ_SCAN
        PCI_ASSIGN_ALL_BUSSES
      
      FR-V and MN10300 do test for PCI_ASSIGN_ROMS, but they never set it, so
      it's dead code.
      
      Remove the unused flags above.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      24b390aa
  7. 23 7月, 2015 2 次提交
    • L
      PCI: Call pci_read_bridge_bases() from core instead of arch code · dff22d20
      Lorenzo Pieralisi 提交于
      When we scan a PCI bus, we read PCI-PCI bridge window registers with
      pci_read_bridge_bases() so we can validate the resource hierarchy.  Most
      architectures call pci_read_bridge_bases() from pcibios_fixup_bus(), but
      PCI-PCI bridges are not arch-specific, so this doesn't need to be in
      arch-specific code.
      
      Call pci_read_bridge_bases() directly from the PCI core instead of from
      arch code.
      
      For alpha and mips, we now call pci_read_bridge_bases() always; previously
      we only called it if PCI_PROBE_ONLY was set.
      
      [bhelgaas: changelog]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: Ralf Baechle <ralf@linux-mips.org>
      CC: James E.J. Bottomley <jejb@parisc-linux.org>
      CC: Michael Ellerman <mpe@ellerman.id.au>
      CC: Bjorn Helgaas <bhelgaas@google.com>
      CC: Richard Henderson <rth@twiddle.net>
      CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: David Howells <dhowells@redhat.com>
      CC: Russell King <linux@arm.linux.org.uk>
      CC: Tony Luck <tony.luck@intel.com>
      CC: David S. Miller <davem@davemloft.net>
      CC: Ingo Molnar <mingo@redhat.com>
      CC: Guenter Roeck <linux@roeck-us.net>
      CC: Michal Simek <monstr@monstr.eu>
      CC: Chris Zankel <chris@zankel.net>
      dff22d20
    • M
      PCI: designware: Don't complain missing *config* reg space if va_cfg0 is set · 0f414212
      Murali Karicheri 提交于
      Currently on Keystone SoCs, we always complain:
      
        keystone-pcie 21021000.pcie: missing *config* reg space
      
      Keystone uses an older version of DesignWare hardware that doesn't have
      ATU support.  So va_cfg0_base and va_cfg1_base are already set up in
      ks_dw_pcie_host_init() before calling dw_pcie_host_init(), and they point
      to the remote config space address va (both same for Keystone).  Add a
      check to avoid this boot noise on Keystone.
      Signed-off-by: NMurali Karicheri <m-karicheri2@ti.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      0f414212
  8. 22 7月, 2015 3 次提交
  9. 21 7月, 2015 4 次提交
  10. 16 7月, 2015 3 次提交
  11. 15 7月, 2015 3 次提交