12 Dec, 2012

1 commit

  • Pull driver core updates from Greg Kroah-Hartman:
    "Here's the large driver core updates for 3.8-rc1.

    The biggest thing here is the various __dev* marking removals. This
    is going to be a pain for the merge with different subsystem trees, I
    know, but all of the patches included here have been ACKed by their
    various subsystem maintainers, as they wanted them to go through here.

    If this is too much of a pain, I can pull all of them out of this tree
    and just send you one with the other fixes/updates and then, after
    3.8-rc1 is out, do the rest of the removals to ensure we catch them
    all, it's up to you. The merges should all be trivial, and Stephen
    has been doing them all in linux-next for a few weeks now quite
    easily.

    Other than the __dev* marking removals, there's nothing major here,
    some firmware loading updates and other minor things in the driver
    core.

    All of these have (much to Stephen's annoyance), been in linux-next
    for a while.

    Signed-off-by: Greg Kroah-Hartman "

    Fixed up trivial conflicts in drivers/gpio/gpio-{em,stmpe}.c due to gpio
    update.

    * tag 'driver-core-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (93 commits)
    modpost.c: Stop checking __dev* section mismatches
    init.h: Remove __dev* sections from the kernel
    acpi: remove use of __devinit
    PCI: Remove __dev* markings
    PCI: Always build setup-bus when PCI is enabled
    PCI: Move pci_uevent into pci-driver.c
    PCI: Remove CONFIG_HOTPLUG ifdefs
    unicore32/PCI: Remove CONFIG_HOTPLUG ifdefs
    sh/PCI: Remove CONFIG_HOTPLUG ifdefs
    powerpc/PCI: Remove CONFIG_HOTPLUG ifdefs
    mips/PCI: Remove CONFIG_HOTPLUG ifdefs
    microblaze/PCI: Remove CONFIG_HOTPLUG ifdefs
    dma: remove use of __devinit
    dma: remove use of __devexit_p
    firewire: remove use of __devinitdata
    firewire: remove use of __devinit
    leds: remove use of __devexit
    leds: remove use of __devinit
    leds: remove use of __devexit_p
    mmc: remove use of __devexit
    ...

    Linus Torvalds
     

29 Nov, 2012

1 commit


17 Nov, 2012

1 commit

  • Fix rapidio kernel-doc warnings:

    Warning(drivers/rapidio/rio.c:415): No description found for parameter 'local'
    Warning(drivers/rapidio/rio.c:415): Excess function parameter 'lstart' description in 'rio_map_inb_region'
    Warning(include/linux/rio.h:290): No description found for parameter 'switches'
    Warning(include/linux/rio.h:290): No description found for parameter 'destid_table'

    Signed-off-by: Randy Dunlap
    Cc: Matt Porter
    Acked-by: Alexandre Bounine
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

11 Oct, 2012

3 commits

  • Address comments provided by Andrew Morton:
    https://lkml.org/lkml/2012/10/3/550

    - Keeps consistent kerneldoc compatible comments style for new static
    functions.
    - Removes unnecessary complexity from destination ID allocation
    routine.
    - Uses kcalloc() for code clarity.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Update discovery process initialization based on Andrew Morton's comments:
    https://lkml.org/lkml/2012/10/3/552.

    This update processes all enumerating mports first and schedules discovery
    work after that. If the initialization routine fails to allocate resources
    needed to execute discovery, it abandons discovery for all ports.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Use msleep() for code clarity as suggested by Andrew Morton in his
    comments for the original patch: https://lkml.org/lkml/2012/10/3/546.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

06 Oct, 2012

9 commits

  • Replace the single global destination ID counter with per-net allocation
    mechanism to allow independent destID management for each available
    RapidIO network. Using bitmap based mechanism instead of counters allows
    destination ID release and reuse in systems that support hot-swap.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Modify mport initialization routine to run the RapidIO discovery process
    asynchronously. This allows to have an arbitrary order of enumerating and
    discovering ports in systems with multiple RapidIO controllers without
    creating a deadlock situation if enumerator port is registered after a
    discovering one.

    Making netID matching to mportID ensures consistent net ID assignment in
    multiport RapidIO systems with asynchronous discovery process (global
    counter implementation is affected by race between threads).

    [akpm@linux-foundation.org: tweak code layput]
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Modify handling of device lists to resolve issues caused by using single
    global list of RIO devices during enumeration/discovery. The most common
    sign of existing issue is incorrect contents of switch routing tables in
    systems with multiple mport controllers while single-port configuration
    performs as expected.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • The following set of patches provides modifications targeting support of
    multiple RapidIO master port (mport) devices on a CPU-side of
    RapidIO-capable board. While the RapidIO subsystem code has definitions
    suitable for multi-controller/multi-net support, the existing
    implementation cannot be considered ready for multiple mport
    configurations.

    =========== NOTES: =============

    a) The patches below do not address RapidIO side view of multiport
    processing elements defined in Part 6 of RapidIO spec Rev.2.1 (section
    6.4.1). These devices have Base Device ID CSR (0x60) and Component Tag
    CSR (0x6C) shared by all SRIO ports. For example, Freescale's P4080,
    P3041 and P5020 have a dual-port SRIO controller implemented according
    the specification. Enumeration/discovery of such devices from RapidIO
    side may require device-specific fixups.

    b) Devices referenced above may also require implementation specific
    code to setup a host device ID for mport device. These operations are
    not addressed by patches in this package.

    =================================

    Details about provided patches:

    1. Fix blocking wait for discovery ready

    While it does not happen on PowerPC based platforms, there is
    possibility of stalled CPU warning dump on x86 based platforms that run
    RapidIO discovery process if they wait too long for being enumerated.

    Currently users can avoid it by disabling the soft-lockup detector
    using "nosoftlockup" kernel parameter OR by ensuring that enumeration
    is completed before soft-lockup is detected.

    This patch eliminates blocking wait and keeps a scheduler running.
    It also is required for patch 3 below which introduces asynchronous
    discovery process.

    2. Use device lists handling on per-net basis

    This patch allows to correctly support multiple RapidIO nets and
    resolves possible issues caused by using single global list of devices
    during RapidIO system enumeration/discovery. The most common sign of
    existing issue is incorrect contents of switch routing tables in
    systems with multiple mport controllers while single-port configuration
    performs as expected.

    The patch does not eliminate the global RapidIO device list but
    changes some routines in enumeration/discovery to use per-net device
    lists instead. This way compatibility with upper layer RIO routines is
    preserved.

    3. Run discovery as an asynchronous process

    This patch modifies RapidIO initialization routine to asynchronously
    run the discovery process for each corresponding mport. This allows
    having an arbitrary order of enumerating and discovering mports without
    creating a deadlock situation if an enumerator port was registered
    after a discovering one.

    On boards with multiple discovering mports it also eliminates order
    dependency between mports and may reduce total time of RapidIO
    subsystem initialization.

    Making netID matching to mportID ensures consistent netID assignment
    in multiport RapidIO systems with asynchronous discovery process
    (global counter implementation is affected by race between threads).

    4. Rework RIONET to support multiple RIO master ports

    In the current version of the driver rionet_probe() has comment "XXX
    Make multi-net safe". Now it is a good time to address this comment.

    This patch makes RIONET driver multi-net safe/capable by introducing
    per-net lists of RapidIO network peers. It also enables to register
    network adapters for all available mport devices.

    5. Add destination ID allocation mechanism

    The patch replaces a single global destination ID counter with
    per-net allocation mechanism to allow independent destID management for
    each available RapidIO network. Using bitmap based mechanism instead
    of counters allows destination ID release and reuse in systems that
    support hot-swap.

    This patch:

    Fix blocking wait loop in the RapidIO discovery routine to avoid warning
    dumps about stalled CPU on x86 platforms.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Apply port RX/TX enable operations only to active switch ports.

    RapidIO specification (Part 6: LP-Serial Physical Layer) recommends to
    keep Output Port Enable (TX) and Input Port Enable (RX) control bits in
    disabled state (0b0) after device reset. It also allows to have
    implementation specific reset state for these bits.

    This patch ensures that TX/RX enable action is applied only to active
    switch's ports while preserving an initial state of inactive ones.

    This patch is intended to keep inactive switch ports with inbound and
    outbound packet transfers disabled to block unexpected packets during hot
    insertion event. While it does not fix any visible malfunction it is
    intended to prevent such events in future.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add Tsi721 routines to support RapidIO subsystem's inbound memory mapping
    interface (RapidIO to system's local memory).

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add common inbound memory mapping/unmapping interface. This allows to make
    local memory space accessible from the RapidIO side using hardware mapping
    capabilities of RapidIO bridging devices. The new interface is intended to
    enable data transfers between RapidIO devices in combination with DMA engine
    support.

    This patch is based on patch submitted by Li Yang
    (https://lists.ozlabs.org/pipermail/linuxppc-dev/2009-April/071210.html)

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Convert a nonnegative error return code to a negative one, as returned
    elsewhere in the function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    (
    if@p1 (\(ret < 0\|ret != 0\))
    { ... return ret; }
    |
    ret@p1 = 0
    )
    ... when != ret = e1
    when != &ret
    *if(...)
    {
    ... when != ret = e2
    when forall
    return ret;
    }
    //

    Signed-off-by: Peter Senna Tschudin
    Acked-by: Alexandre Bounine
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Senna Tschudin
     
  • Modify RapidIO mport device name assignment to include device name of PCIe
    side of Tsi721 bridge. The new name format is intended to provide
    definitive reference between RapidIO and PCIe sides of the bridge in
    systems with multiple Tsi721 bridges.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

13 Sep, 2012

1 commit

  • * commit 'v3.6-rc5': (1098 commits)
    Linux 3.6-rc5
    HID: tpkbd: work even if the new Lenovo Keyboard driver is not configured
    Remove user-triggerable BUG from mpol_to_str
    xen/pciback: Fix proper FLR steps.
    uml: fix compile error in deliver_alarm()
    dj: memory scribble in logi_dj
    Fix order of arguments to compat_put_time[spec|val]
    xen: Use correct masking in xen_swiotlb_alloc_coherent.
    xen: fix logical error in tlb flushing
    xen/p2m: Fix one-off error in checking the P2M tree directory.
    powerpc: Don't use __put_user() in patch_instruction
    powerpc: Make sure IPI handlers see data written by IPI senders
    powerpc: Restore correct DSCR in context switch
    powerpc: Fix DSCR inheritance in copy_thread()
    powerpc: Keep thread.dscr and thread.dscr_inherit in sync
    powerpc: Update DSCR on all CPUs when writing sysfs dscr_default
    powerpc/powernv: Always go into nap mode when CPU is offline
    powerpc: Give hypervisor decrementer interrupts their own handler
    powerpc/vphn: Fix arch_update_cpu_topology() return value
    ARM: gemini: fix the gemini build
    ...

    Conflicts:
    drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
    drivers/rapidio/devices/tsi721.c

    Bjorn Helgaas
     

24 Aug, 2012

1 commit


22 Aug, 2012

2 commits

  • Fix unused variable compiler warning when built with CONFIG_RAPIDIO_DEBUG
    option off.

    This patch is applicable to kernel versions starting from v3.2

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Make sure that there is no doorbell messages left behind due to disabled
    interrupts during inbound doorbell processing.

    The most common case for this bug is loss of rionet JOIN messages in
    systems with three or more rionet participants and MSI or MSI-X enabled.
    As result, requests for packet transfers may finish with "destination
    unreachable" error message.

    This patch is applicable to kernel versions starting from v3.2.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

01 Jun, 2012

2 commits

  • Adds support for DMA Engine API into Tsi721 mport driver.

    Includes following changes for Tsi721 driver:
    - Modifies BDMA register offset definitions to support per-channel handling
    - Separates BDMA channel reserved for RIO Maintenance requests
    - Adds DMA Engine callback routines

    Signed-off-by: Alexandre Bounine
    Cc: Dan Williams
    Cc: Vinod Koul
    Cc: Li Yang
    Cc: Matt Porter
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Adds DMA Engine framework support into RapidIO subsystem.

    Uses DMA Engine DMA_SLAVE interface to generate data transfers to/from
    remote RapidIO target devices.

    Introduces RapidIO-specific wrapper for prep_slave_sg() interface with an
    extra parameter to pass target specific information.

    Uses scatterlist to describe local data buffer. Address flat data buffer
    on a remote side.

    Signed-off-by: Alexandre Bounine
    Cc: Dan Williams
    Acked-by: Vinod Koul
    Cc: Li Yang
    Cc: Matt Porter
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

16 Mar, 2012

1 commit

  • Fix indexed register offset definitions that use decimal (wrong) instead
    of hexadecimal (correct) notation for indexing multipliers.

    Incorrect definitions do not affect Tsi721 driver in its current default
    configuration because it uses only IDB queue 0. Loss of inbound
    doorbell functionality should be observed if queue other than 0 is used.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Chul Kim
    Cc: [3.2+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

06 Mar, 2012

1 commit

  • Fix a bug that causes a kernel panic when the number of received doorbells
    is larger than number of entries in the inbound doorbell queue (current
    default value = 512).

    Another possible indication for this bug is large number of spurious
    doorbells reported by tsi721 driver after reaching the queue size maximum.

    Signed-off-by: Alexandre Bounine
    Cc: Chul Kim
    Cc: Matt Porter
    Cc: [3.2.x+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

09 Dec, 2011

3 commits

  • Modify initialization of PCIe capability registers in Tsi721 mport driver:
    - change Completion Timeout value to avoid unexpected data transfer
    aborts during intensive traffic.
    - replace hardcoded offset of PCIe capability block by making it use the
    common function.

    This patch is applicable to kernel versions starting from 3.2-rc1.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Bug fix for Tsi721 RapidIO mport driver: Tsi721 supports four RapidIO
    mailboxes (MBOX0 - MBOX3) as defined by RapidIO specification. Mailbox
    resources has to be properly reported to allow use of all available
    mailboxes (initial version reports only MBOX0).

    This patch is applicable to kernel versions staring from 3.2-rc1.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Replace the pair dma_alloc_coherent()+memset() with the new
    dma_zalloc_coherent() added by Andrew Morton for kernel version 3.2

    Signed-off-by: Alexandre Bounine
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

03 Nov, 2011

3 commits

  • The "goto cleanup" path can deference "rswitch" when it is NULL.

    Reported-by: Dan Carpenter
    Signed-off-by: Alexandre Bounine
    Cc: Dan Carpenter
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Chul Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add RapidIO mport driver for IDT TSI721 PCI Express-to-SRIO bridge device.
    The driver provides full set of callback functions defined for mport
    devices in RapidIO subsystem. It also is compatible with current version
    of RIONET driver (Ethernet over RapidIO messaging services).

    This patch is applicable to kernel versions starting from 2.6.39.

    Signed-off-by: Alexandre Bounine
    Signed-off-by: Chul Kim
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • The discovered bit in PGCCSR register indicates if the device has been
    discovered by system host. In Rapidio systems, some agent devices can also
    be master devices. They can issue requests into the system.

    Signed-off-by: Liu Gang
    Acked-by: Alexandre Bounine
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Liu Gang
     

01 Nov, 2011

1 commit


26 Aug, 2011

1 commit

  • Replace/remove use of RIO v.1.2 registers/bits that are not
    forward-compatible with newer versions of RapidIO specification.

    RapidIO specification v.1.3 removed Write Port CSR, Doorbell CSR,
    Mailbox CSR and Mailbox and Doorbell bits of the PEF CAR.

    Use of removed (since RIO v.1.3) register bits affects users of
    currently available 1.3 and 2.x compliant devices who may use not so
    recent kernel versions.

    Removing checks for unsupported bits makes corresponding routines
    compatible with all versions of RapidIO specification. Therefore,
    backporting makes stable kernel versions compliant with RIO v.1.3 and
    later as well.

    Signed-off-by: Alexandre Bounine
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Thomas Moll
    Cc: Chul Kim
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

18 May, 2011

1 commit

  • Fix switch initialization to ensure that all switches have default routing
    disabled. This guarantees that no unexpected RapidIO packets arrive to
    the default port set by reset and there is no default routing destination
    until it is properly configured by software.

    This update also unifies handling of unmapped destinations by tsi57x, IDT
    Gen1 and IDT Gen2 switches.

    Signed-off-by: Alexandre Bounine
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Thomas Moll
    Cc: [2.6.37+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

15 Apr, 2011

2 commits


31 Mar, 2011

1 commit


24 Mar, 2011

4 commits

  • If rio is not a switch then "rswitch" is null.

    Signed-off-by: Dan Carpenter
    Cc: Matt Porter
    Cc: Kumar Gala
    Signed-off-by: Alexandre Bounine
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Removes resource reservation from the common sybsystem initialization code
    and make it part of mport driver initialization. This resolves conflict
    with resource reservation by device specific mport drivers.

    Signed-off-by: Alexandre Bounine
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Thomas Moll
    Cc: Micha Nelissen
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Changes mport ID and host destination ID assignment to implement unified
    method common to all mport drivers. Makes "riohdid=" kernel command line
    parameter common for all architectures with support for more that one host
    destination ID assignment.

    Signed-off-by: Alexandre Bounine
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Thomas Moll
    Cc: Micha Nelissen
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Subsystem initialization sequence modified to support presence of multiple
    RapidIO controllers in the system. The new sequence is compatible with
    initialization of PCI devices.

    Signed-off-by: Alexandre Bounine
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Thomas Moll
    Cc: Micha Nelissen
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine