1. 11 10月, 2012 3 次提交
  2. 06 10月, 2012 9 次提交
    • A
      rapidio: add destination ID allocation mechanism · de74e00a
      Alexandre Bounine 提交于
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      de74e00a
    • A
      rapidio: run discovery as an asynchronous process · 005842ef
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      005842ef
    • A
      rapidio: use device lists handling on per-net basis · a7071efc
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a7071efc
    • A
      rapidio: fix blocking wait for discovery ready · fa3dbaa0
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fa3dbaa0
    • A
      rapidio: apply RX/TX enable to active switch ports only · 8d4630dc
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d4630dc
    • A
      rapidio/tsi721: add inbound memory mapping callbacks · 71afe341
      Alexandre Bounine 提交于
      Add Tsi721 routines to support RapidIO subsystem's inbound memory mapping
      interface (RapidIO to system's local memory).
      Signed-off-by: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      71afe341
    • A
      rapidio: add inbound memory mapping interface · da1589f0
      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 <leoli@freescale.com>
      (https://lists.ozlabs.org/pipermail/linuxppc-dev/2009-April/071210.html)
      Signed-off-by: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      da1589f0
    • P
      drivers/rapidio/devices/tsi721.c: fix error return code · 18f6287f
      Peter Senna Tschudin 提交于
      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/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: NPeter Senna Tschudin <peter.senna@gmail.com>
      Acked-by: NAlexandre Bounine <alexandre.bounine@idt.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      18f6287f
    • A
      rapidio/tsi721: modify mport name assignment · ed43f44f
      Alexandre Bounine 提交于
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ed43f44f
  3. 24 8月, 2012 1 次提交
  4. 22 8月, 2012 2 次提交
  5. 01 6月, 2012 2 次提交
  6. 16 3月, 2012 1 次提交
  7. 06 3月, 2012 1 次提交
  8. 09 12月, 2011 3 次提交
  9. 03 11月, 2011 3 次提交
  10. 01 11月, 2011 1 次提交
  11. 26 8月, 2011 1 次提交
    • A
      rapidio: fix use of non-compatible registers · 284fb68d
      Alexandre Bounine 提交于
      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: NAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Cc: Thomas Moll <thomas.moll@sysgo.com>
      Cc: Chul Kim <chul.kim@idt.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      284fb68d
  12. 18 5月, 2011 1 次提交
  13. 15 4月, 2011 2 次提交
  14. 31 3月, 2011 1 次提交
  15. 24 3月, 2011 7 次提交
  16. 17 3月, 2011 1 次提交
  17. 26 2月, 2011 1 次提交
新手
引导
客服 返回
顶部