1. 12 Dec, 2016 16 commits
    • Bjorn Helgaas's avatar
      Merge branch 'pci/misc' into next · c1f2e80c
      Bjorn Helgaas authored
      * pci/misc:
        PCI: Enable access to non-standard VPD for Chelsio devices (cxgb3)
        PCI: Expand "VPD access disabled" quirk message
        PCI: pciehp: Remove loading message
        PCI: hotplug: Remove hotplug core message
        PCI: Remove service driver load/unload messages
        PCI/AER: Log AER IRQ when claiming Root Port
        PCI/AER: Log errors with PCI device, not PCIe service device
        PCI/AER: Remove unused version macros
        PCI/PME: Log PME IRQ when claiming Root Port
        PCI/PME: Drop unused support for PMEs from Root Complex Event Collectors
        PCI: Move config space size macros to pci_regs.h
      c1f2e80c
    • Bjorn Helgaas's avatar
      Merge branch 'pci/hotplug' into next · 4617aedb
      Bjorn Helgaas authored
      * pci/hotplug:
        PCI: pciehp: Leave power indicator on when enabling already-enabled slot
        PCI: pciehp: Prioritize data-link event over presence detect
        PCI: cpqphp: Add missing call to pci_disable_device()
      4617aedb
    • Bjorn Helgaas's avatar
      Merge branch 'pci/enumeration' into next · 2f0f3733
      Bjorn Helgaas authored
      * pci/enumeration:
        PCI: Warn on possible RW1C corruption for sub-32 bit config writes
        PCI: Create revision file in sysfs
      2f0f3733
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ecam' into next · 5e0ad9f6
      Bjorn Helgaas authored
      * pci/ecam:
        PCI: Explain ARM64 ACPI/MCFG quirk Kconfig and build strategy
        PCI: Add MCFG quirks for X-Gene host controller
        PCI: Add MCFG quirks for Cavium ThunderX pass1.x host controller
        PCI: Add MCFG quirks for Cavium ThunderX pass2.x host controller
        PCI: thunder-pem: Factor out resource lookup
        PCI: Add MCFG quirks for HiSilicon Hip05/06/07 host controllers
        PCI: Add MCFG quirks for Qualcomm QDF2432 host controller
        PCI/ACPI: Provide acpi_get_rc_resources() for ARM64 platform
        PCI/ACPI: Check for platform-specific MCFG quirks
        PCI/ACPI: Extend pci_mcfg_lookup() to return ECAM config accessors
        arm64: PCI: Exclude ACPI "consumer" resources from host bridge windows
        arm64: PCI: Manage controller-specific data on per-controller basis
        arm64: PCI: Search ACPI namespace to ensure ECAM space is reserved
        arm64: PCI: Add local struct device pointers
        ACPI: Add acpi_resource_consumer() to find device that claims a resource
      5e0ad9f6
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aspm' into next · a7d51491
      Bjorn Helgaas authored
      * pci/aspm:
        PCI/ASPM: Don't retrain link if ASPM not possible
        PCI/ASPM: Use permission-specific DEVICE_ATTR variants
      a7d51491
    • Alexey Kardashevskiy's avatar
      PCI: Enable access to non-standard VPD for Chelsio devices (cxgb3) · 1c7de2b4
      Alexey Kardashevskiy authored
      There is at least one Chelsio 10Gb card which uses VPD area to store some
      non-standard blocks (example below).  However pci_vpd_size() returns the
      length of the first block only assuming that there can be only one VPD "End
      Tag".
      
      Since 4e1a6355 ("vfio/pci: Use kernel VPD access functions"), VFIO
      blocks access beyond that offset, which prevents the guest "cxgb3" driver
      from probing the device.  The host system does not have this problem as its
      driver accesses the config space directly without pci_read_vpd().
      
      Add a quirk to override the VPD size to a bigger value.  The maximum size
      is taken from EEPROMSIZE in drivers/net/ethernet/chelsio/cxgb3/common.h.
      We do not read the tag as the cxgb3 driver does as the driver supports
      writing to EEPROM/VPD and when it writes, it only checks for 8192 bytes
      boundary.  The quirk is registered for all devices supported by the cxgb3
      driver.
      
      This adds a quirk to the PCI layer (not to the cxgb3 driver) as the cxgb3
      driver itself accesses VPD directly and the problem only exists with the
      vfio-pci driver (when cxgb3 is not running on the host and may not be even
      loaded) which blocks accesses beyond the first block of VPD data.  However
      vfio-pci itself does not have quirks mechanism so we add it to PCI.
      
      This is the controller:
      Ethernet controller [0200]: Chelsio Communications Inc T310 10GbE Single Port Adapter [1425:0030]
      
      This is what I parsed from its VPD:
      ===
      b'\x82*\x0010 Gigabit Ethernet-SR PCI Express Adapter\x90J\x00EC\x07D76809 FN\x0746K'
       0000 Large item 42 bytes; name 0x2 Identifier String
      	b'10 Gigabit Ethernet-SR PCI Express Adapter'
       002d Large item 74 bytes; name 0x10
      	#00 [EC] len=7: b'D76809 '
      	#0a [FN] len=7: b'46K7897'
      	#14 [PN] len=7: b'46K7897'
      	#1e [MN] len=4: b'1037'
      	#25 [FC] len=4: b'5769'
      	#2c [SN] len=12: b'YL102035603V'
      	#3b [NA] len=12: b'00145E992ED1'
       007a Small item 1 bytes; name 0xf End Tag
      
       0c00 Large item 16 bytes; name 0x2 Identifier String
      	b'S310E-SR-X      '
       0c13 Large item 234 bytes; name 0x10
      	#00 [PN] len=16: b'TBD             '
      	#13 [EC] len=16: b'110107730D2     '
      	#26 [SN] len=16: b'97YL102035603V  '
      	#39 [NA] len=12: b'00145E992ED1'
      	#48 [V0] len=6: b'175000'
      	#51 [V1] len=6: b'266666'
      	#5a [V2] len=6: b'266666'
      	#63 [V3] len=6: b'2000  '
      	#6c [V4] len=2: b'1 '
      	#71 [V5] len=6: b'c2    '
      	#7a [V6] len=6: b'0     '
      	#83 [V7] len=2: b'1 '
      	#88 [V8] len=2: b'0 '
      	#8d [V9] len=2: b'0 '
      	#92 [VA] len=2: b'0 '
      	#97 [RV] len=80: b's\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'...
       0d00 Large item 252 bytes; name 0x11
      	#00 [VC] len=16: b'122310_1222 dp  '
      	#13 [VD] len=16: b'610-0001-00 H1\x00\x00'
      	#26 [VE] len=16: b'122310_1353 fp  '
      	#39 [VF] len=16: b'610-0001-00 H1\x00\x00'
      	#4c [RW] len=173: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'...
       0dff Small item 0 bytes; name 0xf End Tag
      
      10f3 Large item 13315 bytes; name 0x62
      !!! unknown item name 98: b'\xd0\x03\x00@`\x0c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00'
      ===
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      1c7de2b4
    • Bjorn Helgaas's avatar
      PCI: Expand "VPD access disabled" quirk message · 044bc425
      Bjorn Helgaas authored
      It's not very enlightening to see
      
        pci 0000:07:00.0: [Firmware Bug]: VPD access disabled
      
      in the dmesg log because there's no clue about what the firmware bug is.
      Expand the message to explain why we're disabling VPD.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      044bc425
    • Bjorn Helgaas's avatar
      PCI: pciehp: Remove loading message · 5fbeef63
      Bjorn Helgaas authored
      Remove the "PCI Express Hot Plug Controller Driver" version message.  I
      don't think it contains any useful information.  Remove unused #defines
      and move the author information to a comment.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      5fbeef63
    • Bjorn Helgaas's avatar
      PCI: hotplug: Remove hotplug core message · d9b47d54
      Bjorn Helgaas authored
      Remove the "PCI Hot Plug PCI Core" version message.  I don't think it
      contains any useful information.  Remove unused #defines and move the
      author information to a comment.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      d9b47d54
    • Bjorn Helgaas's avatar
      PCI: Remove service driver load/unload messages · 98892fae
      Bjorn Helgaas authored
      Remove the "service driver %s loaded" and unloaded messages.  All service
      drivers already log something in their probe functions, where they can log
      more useful details.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      98892fae
    • Bjorn Helgaas's avatar
      PCI/AER: Log AER IRQ when claiming Root Port · 68a55ae5
      Bjorn Helgaas authored
      Add a log message when we enable AER on a Root Port and the hierarchy below
      it.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      68a55ae5
    • Bjorn Helgaas's avatar
      PCI/AER: Log errors with PCI device, not PCIe service device · 576700b6
      Bjorn Helgaas authored
      All other AER-related log messages use the PCI device, e.g.,
      "pci 0000:00:1c.0", not the PCIe service device, e.g.,
      "aer 0000:00:1c.0:pcie02".
      
      Change the probe error messages to match the rest and include a little
      context.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      576700b6
    • Bjorn Helgaas's avatar
      PCI/AER: Remove unused version macros · 2298a7aa
      Bjorn Helgaas authored
      Remove the unused DRIVER_VERSION, DRIVER_AUTHOR, and DRIVER_DESC macros.
      The author information is already included in a comment above.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      2298a7aa
    • Bjorn Helgaas's avatar
      PCI/PME: Log PME IRQ when claiming Root Port · a902d81a
      Bjorn Helgaas authored
      We already log a "Signaling PME" whenever the PME service driver claims a
      Root Port.  In fact, we also log the same message for every device in the
      hierarchy below the Root Port.
      
      Log the "Signaling PME" once (only for the Root Port, since we can
      trivially find out which devices are below the Root Port), and include the
      IRQ number in the message to help connect the dots with /proc/interrupts.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a902d81a
    • Bjorn Helgaas's avatar
      PCI/PME: Drop unused support for PMEs from Root Complex Event Collectors · 0a1e1b26
      Bjorn Helgaas authored
      Since we register pcie_pme_driver only for PCI_EXP_TYPE_ROOT_PORT, the PME
      driver never claims Root Complex Event Collectors.
      
      Remove unused code related to Root Complex Event Collectors.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0a1e1b26
    • Wang Sheng-Hui's avatar
      PCI: Move config space size macros to pci_regs.h · cc10385b
      Wang Sheng-Hui authored
      Move PCI configuration space size macros (PCI_CFG_SPACE_SIZE and
      PCI_CFG_SPACE_EXP_SIZE) from drivers/pci/pci.h to
      include/uapi/linux/pci_regs.h so they can be used by more drivers and
      eliminate duplicate definitions.
      
      [bhelgaas: Expand comment to include PCI-X details]
      Signed-off-by: default avatarWang Sheng-Hui <shhuiw@foxmail.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      cc10385b
  2. 08 Dec, 2016 2 commits
  3. 07 Dec, 2016 2 commits
  4. 06 Dec, 2016 13 commits
    • Duc Dang's avatar
      PCI: Add MCFG quirks for X-Gene host controller · c5d46039
      Duc Dang authored
      PCIe controllers in X-Gene SoCs are not ECAM compliant: software needs to
      configure additional controller's register to address device at
      bus:dev:function.
      
      Add a quirk to discover controller MMIO register space and configure
      controller registers to select and address the target secondary device.
      
      The quirk will only be applied for X-Gene PCIe MCFG table with
      OEM revison 1, 2, 3 or 4 (PCIe controller v1 and v2 on X-Gene SoCs).
      Tested-by: default avatarJon Masters <jcm@redhat.com>
      Signed-off-by: default avatarDuc Dang <dhdang@apm.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      c5d46039
    • Tomasz Nowicki's avatar
      PCI: Add MCFG quirks for Cavium ThunderX pass1.x host controller · 648d93fc
      Tomasz Nowicki authored
      ThunderX pass1.x requires to emulate the EA headers for on-chip devices
      hence it has to use custom pci_thunder_ecam_ops for accessing PCI config
      space (pci-thunder-ecam.c). Add new entries to MCFG quirk array where it
      can be applied while probing ACPI based PCI host controller.
      
      ThunderX pass1.x is using the same way for accessing off-chip devices
      (so-called PEM) as silicon pass-2.x so we need to add PEM quirk entries
      too.
      
      Quirk is considered for ThunderX silicon pass1.x only which is identified
      via MCFG revision 2.
      
      ThunderX pass 1.x requires the following accessors:
      
        NUMA node 0 PCI segments  0- 3: pci_thunder_ecam_ops (MCFG quirk)
        NUMA node 0 PCI segments  4- 9: thunder_pem_ecam_ops (MCFG quirk)
        NUMA node 1 PCI segments 10-13: pci_thunder_ecam_ops (MCFG quirk)
        NUMA node 1 PCI segments 14-19: thunder_pem_ecam_ops (MCFG quirk)
      
      [bhelgaas: change Makefile/ifdefs so quirk doesn't depend on
      CONFIG_PCI_HOST_THUNDER_ECAM]
      Signed-off-by: default avatarTomasz Nowicki <tn@semihalf.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      648d93fc
    • Tomasz Nowicki's avatar
      PCI: Add MCFG quirks for Cavium ThunderX pass2.x host controller · 44f22bd9
      Tomasz Nowicki authored
      ThunderX PCIe controller to off-chip devices (so-called PEM) is not fully
      compliant with ECAM standard. It uses non-standard configuration space
      accessors (see thunder_pem_ecam_ops) and custom configuration space
      granulation (see bus_shift = 24). In order to access configuration space
      and probe PEM as ACPI-based PCI host controller we need to add MCFG quirk
      infrastructure. This involves:
      1. A new thunder_pem_acpi_init() init function to locate PEM-specific
         register ranges using ACPI.
      2. Export PEM thunder_pem_ecam_ops structure so it is visible to MCFG quirk
         code.
      3. New quirk entries for each PEM segment. Each contains platform IDs,
         mentioned thunder_pem_ecam_ops and CFG resources.
      
      Quirk is considered for ThunderX silicon pass2.x only which is identified
      via MCFG revision 1.
      
      ThunderX pass 2.x requires the following accessors:
      
        NUMA Node 0 PCI segments  0- 3: pci_generic_ecam_ops (ECAM-compliant)
        NUMA Node 0 PCI segments  4- 9: thunder_pem_ecam_ops (MCFG quirk)
        NUMA Node 1 PCI segments 10-13: pci_generic_ecam_ops (ECAM-compliant)
        NUMA Node 1 PCI segments 14-19: thunder_pem_ecam_ops (MCFG quirk)
      
      [bhelgaas: adapt to use acpi_get_rc_resources(), update Makefile/ifdefs so
      quirk doesn't depend on CONFIG_PCI_HOST_THUNDER_PEM]
      Signed-off-by: default avatarTomasz Nowicki <tn@semihalf.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      44f22bd9
    • Bjorn Helgaas's avatar
      PCI: thunder-pem: Factor out resource lookup · 0d414268
      Bjorn Helgaas authored
      Pull the register resource lookup out of thunder_pem_init() so we can
      easily add a corresponding lookup using ACPI.  No functional change
      intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      0d414268
    • Dongdong Liu's avatar
      PCI: Add MCFG quirks for HiSilicon Hip05/06/07 host controllers · 5f00f1a0
      Dongdong Liu authored
      The PCIe controller in Hip05/Hip06/Hip07 SoCs is not completely
      ECAM-compliant.  It is non-ECAM only for the RC bus config space; for any
      other bus underneath the root bus it does support ECAM access.
      
      Add specific quirks for PCI config space accessors.  This involves:
      1. New initialization call hisi_pcie_init() to obtain RC base
      addresses from PNP0C02 at the root of the ACPI namespace (under \_SB).
      2. New entry in common quirk array.
      
      [bhelgaas: move to pcie-hisi.c and change Makefile/ifdefs so quirk doesn't
      depend on CONFIG_PCI_HISI]
      Signed-off-by: default avatarDongdong Liu <liudongdong3@huawei.com>
      Signed-off-by: default avatarGabriele Paoloni <gabriele.paoloni@huawei.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      5f00f1a0
    • Christopher Covington's avatar
      PCI: Add MCFG quirks for Qualcomm QDF2432 host controller · 2ca5b8dd
      Christopher Covington authored
      The Qualcomm Technologies QDF2432 SoC does not support accesses smaller
      than 32 bits to the PCI configuration space.  Register the appropriate
      quirk.
      
      [bhelgaas: add QCOM_ECAM32 macro, ifdef for ACPI and PCI_QUIRKS]
      Signed-off-by: default avatarChristopher Covington <cov@codeaurora.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      2ca5b8dd
    • Dongdong Liu's avatar
      PCI/ACPI: Provide acpi_get_rc_resources() for ARM64 platform · 169de969
      Dongdong Liu authored
      The acpi_get_rc_resources() is used to get the RC register address that can
      not be described in MCFG.  It takes the _HID & segment to look for and
      outputs the RC address resource.  Use PNP0C02 devices to describe such RC
      address resource.  Use _UID to match segment to tell which root bus the
      PNP0C02 resource belongs to.
      
      [bhelgaas: add dev argument, wrap in #ifdef CONFIG_PCI_QUIRKS]
      Signed-off-by: default avatarDongdong Liu <liudongdong3@huawei.com>
      Signed-off-by: default avatarTomasz Nowicki <tn@semihalf.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      169de969
    • Tomasz Nowicki's avatar
      PCI/ACPI: Check for platform-specific MCFG quirks · 5b69b85b
      Tomasz Nowicki authored
      The PCIe spec (r3.0, sec 7.2.2) specifies an "Enhanced Configuration Access
      Mechanism" (ECAM) for memory-mapped access to configuration space.  ECAM is
      required for PCIe systems unless there's a standard firmware interface for
      config access.
      
      In the absence of a firmware interface, we use pci_generic_ecam_ops, and on
      ACPI systems, we discover the ECAM space via the MCFG table and/or the _CBA
      method.
      
      Unfortunately some systems provide MCFG but don't implement ECAM according
      to spec, so we need a mechanism for quirks to make those systems work.
      
      Add an MCFG quirk mechanism to override the config accessor functions
      and/or the memory-mapped address space.
      
      A quirk is selected if it matches all of the following:
      
        - OEM ID
        - OEM Table ID
        - OEM Revision
        - PCI segment (from _SEG)
        - PCI bus number range (from _CRS, wildcard allowed)
      
      If the quirk specifies config accessor functions or a memory-mapped address
      range, these override the defaults.
      
      [bhelgaas: changelog, reorder quirk matching, fix oem_revision typo per
      Duc, add under #ifdef CONFIG_PCI_QUIRKS]
      Signed-off-by: default avatarTomasz Nowicki <tn@semihalf.com>
      Signed-off-by: default avatarDongdong Liu <liudongdong3@huawei.com>
      Signed-off-by: default avatarChristopher Covington <cov@codeaurora.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      5b69b85b
    • Tomasz Nowicki's avatar
      PCI/ACPI: Extend pci_mcfg_lookup() to return ECAM config accessors · 13983eb8
      Tomasz Nowicki authored
      pci_mcfg_lookup() is the external interface to the generic MCFG code.
      Previously it merely looked up the ECAM base address for a given domain and
      bus range.  We want a way to add MCFG quirks, some of which may require
      special config accessors and adjustments to the ECAM address range.
      
      Extend pci_mcfg_lookup() so it can return a pointer to a pci_ecam_ops
      structure and a struct resource for the ECAM address space.  For now, it
      always returns &pci_generic_ecam_ops (the standard accessor) and the
      resource described by the MCFG.
      
      No functional changes intended.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarTomasz Nowicki <tn@semihalf.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      13983eb8
    • Bjorn Helgaas's avatar
      arm64: PCI: Exclude ACPI "consumer" resources from host bridge windows · 8fd4391e
      Bjorn Helgaas authored
      On x86 and ia64, we have treated all ACPI _CRS resources of PNP0A03 host
      bridge devices as "producers", i.e., as host bridge windows.  That's partly
      because some x86 BIOSes improperly used "consumer" descriptors to describe
      windows and partly because Linux didn't have good support for handling
      consumer and producer descriptors differently.
      
      One result is that x86 BIOSes describe host bridge "consumer" resources in
      the _CRS of a PNP0C02 device, not the PNP0A03 device itself.  On arm64 we
      don't have a legacy of firmware that has this consumer/producer confusion,
      so we can handle PNP0A03 "consumer" descriptors as host bridge registers
      instead of windows.
      
      Exclude non-window ("consumer") resources from the list of host bridge
      windows.  This allows the use of "consumer" PNP0A03 descriptors for bridge
      register space.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      8fd4391e
    • Tomasz Nowicki's avatar
      arm64: PCI: Manage controller-specific data on per-controller basis · 093d24a2
      Tomasz Nowicki authored
      Currently we use one shared global acpi_pci_root_ops structure to keep
      controller-specific ops. We pass its pointer to acpi_pci_root_create() and
      associate it with a host bridge instance for good.  Such a design implies
      serious drawback. Any potential manipulation on the single system-wide
      acpi_pci_root_ops leads to kernel crash. The structure content is not
      really changing even across multiple host bridges creation; thus it was not
      an issue so far.
      
      In preparation for adding ECAM quirks mechanism (where controller-specific
      PCI ops may be different for each host bridge) allocate new
      acpi_pci_root_ops and fill in with data for each bridge. Now it is safe to
      have different controller-specific info. As a consequence free
      acpi_pci_root_ops when host bridge is released.
      
      No functional changes in this patch.
      Signed-off-by: default avatarTomasz Nowicki <tn@semihalf.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      093d24a2
    • Bjorn Helgaas's avatar
      arm64: PCI: Search ACPI namespace to ensure ECAM space is reserved · 08b1c196
      Bjorn Helgaas authored
      The static MCFG table tells us the base of ECAM space, but it does not
      reserve the space -- the reservation should be done via a device in the
      ACPI namespace whose _CRS includes the ECAM region.
      
      Use acpi_resource_consumer() to check whether the ECAM space is reserved by
      an ACPI namespace device.  If it is, emit a message showing which device
      reserves it.  If not, emit a "[Firmware Bug]" warning.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      08b1c196
    • Bjorn Helgaas's avatar
      arm64: PCI: Add local struct device pointers · dfd1972c
      Bjorn Helgaas authored
      Use a local "struct device *dev" for brevity.  No functional change
      intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      dfd1972c
  5. 01 Dec, 2016 1 commit
  6. 23 Nov, 2016 1 commit
  7. 21 Nov, 2016 2 commits
  8. 14 Nov, 2016 1 commit
    • Julia Lawall's avatar
      PCI/ASPM: Use permission-specific DEVICE_ATTR variants · fc4f57fa
      Julia Lawall authored
      Use DEVICE_ATTR_RW for read-write attributes.  This simplifies the source
      code, improves readability, and reduces the chance of inconsistencies.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @rw@
      declarer name DEVICE_ATTR;
      identifier x,x_show,x_store;
      @@
      
      DEVICE_ATTR(x, \(0644\|S_IRUGO|S_IWUSR\), x_show, x_store);
      
      @script:ocaml@
      x << rw.x;
      x_show << rw.x_show;
      x_store << rw.x_store;
      @@
      
      if not (x^"_show" = x_show && x^"_store" = x_store)
      then Coccilib.include_match false
      
      @@
      declarer name DEVICE_ATTR_RW;
      identifier rw.x,rw.x_show,rw.x_store;
      @@
      
      - DEVICE_ATTR(x, \(0644\|S_IRUGO|S_IWUSR\), x_show, x_store);
      + DEVICE_ATTR_RW(x);
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      fc4f57fa
  9. 15 Oct, 2016 2 commits
    • Linus Torvalds's avatar
      Linux 4.9-rc1 · 1001354c
      Linus Torvalds authored
      1001354c
    • Linus Torvalds's avatar
      Merge tag 'befs-v4.9-rc1' of git://github.com/luisbg/linux-befs · df34d04a
      Linus Torvalds authored
      Pull befs fixes from Luis de Bethencourt:
       "I recently took maintainership of the befs file system [0]. This is
        the first time I send you a git pull request, so please let me know if
        all the below is OK.
      
        Salah Triki and myself have been cleaning the code and fixing a few
        small bugs.
      
        Sorry I couldn't send this sooner in the merge window, I was waiting
        to have my GPG key signed by kernel members at ELCE in Berlin a few
        days ago."
      
      [0] https://lkml.org/lkml/2016/7/27/502
      
      * tag 'befs-v4.9-rc1' of git://github.com/luisbg/linux-befs: (39 commits)
        befs: befs: fix style issues in datastream.c
        befs: improve documentation in datastream.c
        befs: fix typos in datastream.c
        befs: fix typos in btree.c
        befs: fix style issues in super.c
        befs: fix comment style
        befs: add check for ag_shift in superblock
        befs: dump inode_size superblock information
        befs: remove unnecessary initialization
        befs: fix typo in befs_sb_info
        befs: add flags field to validate superblock state
        befs: fix typo in befs_find_key
        befs: remove unused BEFS_BT_PARMATCH
        fs: befs: remove ret variable
        fs: befs: remove in vain variable assignment
        fs: befs: remove unnecessary *befs_sb variable
        fs: befs: remove useless initialization to zero
        fs: befs: remove in vain variable assignment
        fs: befs: Insert NULL inode to dentry
        fs: befs: Remove useless calls to brelse in befs_find_brun_dblindirect
        ...
      df34d04a