15 Apr, 2011

1 commit

  • Fix a possible problem with mport registration left non-cleared after
    fsl_rio_setup() exits on link error. Abort mport initialization if
    registration failed.

    This patch is applicable to 2.6.39-rc1 only. The problem does not exist
    for earlier versions.

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

    Alexandre Bounine
     

24 Mar, 2011

3 commits

  • 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
     
  • This set of patches eliminates RapidIO dependency on PowerPC architecture
    and makes it available to other architectures (x86 and MIPS). It also
    enables support of new platform independent RapidIO controllers such as
    PCI-to-SRIO and PCI Express-to-SRIO.

    This patch:

    Extend number of mport callback functions to eliminate direct linking of
    architecture specific mport operations.

    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
     

14 Jan, 2011

3 commits

  • Add definition of the unique device identifier field in the component tag.
    RIO_CTAG_UDEVID does not take all 32 bits of the component tag value to
    allow future extensions to the component tag use.

    Selected size of the RIO_CTAG_UDEVID field (17 bits) is sufficient to
    accommodate maximum number of endpoints in large RIO network (16-bit id)
    plus switches.

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

    Alexandre Bounine
     
  • Convert RIO switches device structures (rio_dev + rio_switch) into a
    single allocation unit.

    This change is based on the fact that RIO switches are using common RIO
    device objects anyway. Allocating RIO switch objects as RIO devices with
    added space for switch information simplifies handling of RIO switch
    devices.

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

    Alexandre Bounine
     
  • Change code to use one storage location common for switches and endpoints.
    This eliminates unnecessary device type checks during basic access
    operations. Logic that assigns destid to RIO devices stays unchanged - as
    before, switches use an associated destid because they do not have their
    own.

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

    Alexandre Bounine
     

28 Oct, 2010

5 commits

  • Detects RIO link to the already enumerated device and properly sets links
    between device objects. Changes to the enumeration/discovery logic:

    1. Use Master Enable bit to signal end of the enumeration - agents may
    start their discovery process as soon as they see this bit set
    (Component Tag register was used before for this purpose).

    2. Enumerator sets Component Tag (!= 0) immediately during device
    setup. This allows to identify the device if the redundant route
    exists in a RIO system.

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

    Alexandre Bounine
     
  • 1. Change to create attribute "routes" only for switches.

    2. Add a switch-specific callback to create/remove proprietary attributes.

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

    Alexandre Bounine
     
  • Create back and forward links between RIO devices. These links are
    intended for use by error management and hot-plug extensions. Links for
    redundant RIO connections between switches are not set (will be fixed in a
    separate patch).

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

    Alexandre Bounine
     
  • The switch port information is obtained and stored during RIO device
    setup. Therefore repeated reads from Switch Port Information CAR may be
    removed.

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

    Alexandre Bounine
     
  • This set of RapidIO patches extends support for standard error recovery
    mechanism and adds new IDT Gen2 sRIO switch devices - CPS-1848 and
    CPS-1616. Implementation of the standard error-stopped state recovery
    mechanism (as defined by the RapidIO specification) is required for the
    new switches.

    Version 2 of this set of patches addresses received comments and fixes an
    error notification setup issue found in the idt_gen2.c after the first
    version was released.

    This patch:

    Make RapidIO devices appear in /sys/devices/rapidio directory instead of
    top of /sys/devices directory.

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

    Alexandre Bounine
     

31 May, 2010

1 commit

  • Fix a bunch of new rapidio kernel-doc warnings:

    Warning(include/linux/rio.h:123): No description found for parameter 'comp_tag'
    Warning(include/linux/rio.h:123): No description found for parameter 'phys_efptr'
    Warning(include/linux/rio.h:123): No description found for parameter 'em_efptr'
    Warning(include/linux/rio.h:123): No description found for parameter 'pwcback'
    Warning(include/linux/rio.h:247): No description found for parameter 'set_domain'
    Warning(include/linux/rio.h:247): No description found for parameter 'get_domain'
    Warning(drivers/rapidio/rio-scan.c:1133): No description found for parameter 'rdev'
    Warning(drivers/rapidio/rio-scan.c:1133): Excess function parameter 'port' description in 'rio_init_em'
    Warning(drivers/rapidio/rio.c:349): No description found for parameter 'rdev'
    Warning(drivers/rapidio/rio.c:349): Excess function parameter 'mport' description in 'rio_request_inb_pwrite'
    Warning(drivers/rapidio/rio.c:393): No description found for parameter 'port'
    Warning(drivers/rapidio/rio.c:393): No description found for parameter 'local'
    Warning(drivers/rapidio/rio.c:393): No description found for parameter 'destid'
    Warning(drivers/rapidio/rio.c:393): No description found for parameter 'hopcount'
    Warning(drivers/rapidio/rio.c:393): Excess function parameter 'rdev' description in 'rio_mport_get_physefb'
    Warning(drivers/rapidio/rio.c:845): Excess function parameter 'local' description in 'rio_std_route_clr_table'

    Signed-off-by: Randy Dunlap
    Cc: Alexandre Bounine
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

28 May, 2010

4 commits

  • Add switch specific domain routines required for 16-bit routing support in
    switches with hierarchical implementation of routing tables.

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

    Alexandre Bounine
     
  • Modify the way how RapidIO switch operations are declared. Multiple
    assignments through the linker script replaced by single initialization
    call.

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

    Alexandre Bounine
     
  • Add RapidIO Port-Write message handling in the context of Error
    Management Extensions Specification Rev.1.3.

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

    Alexandre Bounine
     
  • Extentions to RapidIO switch support:

    1. modify switch route operation declarations to allow using single
    switch-specific file for family of switches that share the same route
    table operations.

    2. add standard route table operations for switches that that support
    route table manipulation registers as defined in the Rev.1.3 of RapidIO
    specification.

    3. add clear-route-table operation for switches

    4. add CPSxx and TSIxxx families of RapidIO switches

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

    Alexandre Bounine
     

04 May, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Bolt in SLB entry for kernel stack on secondary cpus
    [POWERPC] PS3: Update ps3_defconfig
    [POWERPC] PS3: Remove unsupported wakeup sources
    [POWERPC] PS3: Make ps3_virq_setup and ps3_virq_destroy static
    [POWERPC] PS3: Add time include to lpm
    [POWERPC] Fix slb.c compile warnings
    [POWERPC] Xilinx: Fix compile warnings
    [POWERPC] Squash build warning for print of resource_size_t in fsl_soc.c
    [RAPIDIO] fix current kernel-doc notation
    [POWERPC] 86xx: mpc8610_hpcd: add support for PCI Express x8 slot
    Fix a potential issue in mpc52xx uart driver
    [POWERPC] mpc5200: Allow for fixed speed MII configurations
    [POWERPC] 86xx: Fix the wrong serial1 interrupt for 8610 board

    Linus Torvalds
     

02 May, 2008

1 commit

  • Fix current (-git16) missing docbook/kernel-doc notation in RapidIO files.

    Warning(linux-2.6.25-git16//include/linux/rio.h:187): No description found for parameter 'sys_size'
    Warning(linux-2.6.25-git16//include/linux/rio.h:187): No description found for parameter 'phy_type'

    Warning(linux-2.6.25-git16//arch/powerpc/sysdev/fsl_rio.c:188): No description found for parameter 'mport'
    Warning(linux-2.6.25-git16//arch/powerpc/sysdev/fsl_rio.c:224): No description found for parameter 'mport'
    Warning(linux-2.6.25-git16//arch/powerpc/sysdev/fsl_rio.c:245): No description found for parameter 'mport'
    Warning(linux-2.6.25-git16//arch/powerpc/sysdev/fsl_rio.c:270): No description found for parameter 'mport'
    Warning(linux-2.6.25-git16//arch/powerpc/sysdev/fsl_rio.c:311): No description found for parameter 'mport'
    Warning(linux-2.6.25-git16//arch/powerpc/sysdev/fsl_rio.c:996): No description found for parameter 'dev'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Kumar Gala

    Randy Dunlap
     

30 Apr, 2008

1 commit


29 Apr, 2008

3 commits

  • Signed-off-by: Zhang Wei
    Signed-off-by: Andrew Morton
    Signed-off-by: Paul Mackerras

    Zhang Wei
     
  • The RapidIO system size will auto probe in RIO setup. The route table
    and rionet_active in rionet.c are changed to be allocated dynamically
    according to the size of the system.

    Signed-off-by: Zhang Wei
    Signed-off-by: Andrew Morton
    Signed-off-by: Paul Mackerras

    Zhang Wei
     
  • The original RapidIO driver suppose there is only one mpc85xx RIO controller
    in system. So, some data structures are defined as mpc85xx_rio global, such
    as 'regs_win', 'dbell_ring', 'msg_tx_ring'. Now, I changed them to mport's
    private members. And you can define multi RIO OF-nodes in dts file for multi
    RapidIO controller in one processor, such as PCI/PCI-Ex host controllers in
    Freescale's silicon. And the mport operation function declaration should be
    changed to know which RapidIO controller is target.

    Signed-off-by: Zhang Wei
    Signed-off-by: Andrew Morton
    Signed-off-by: Paul Mackerras

    Zhang Wei
     

12 Feb, 2007

1 commit

  • This patch contains two fixes for RapisIO enumeration logic:

    1. Fix enumeration in configurations with multiple switches. The patch adds:

    a. Enumeration of an empty switch. Empty switch is a switch that
    does not have any endpoint devices attached to it (except host device
    or previous switch in a chain). New code assigns a phony destination
    ID associated with the switch and sets up corresponding routes.

    b. Adds a second pass to the enumeration to setup routes to
    devices discovered after switch was scanned.

    2. Fix enumeration failure when riohdid parameter has non-zero value.
    Current version fails to setup response path to the host when it has
    destination ID other that 0.

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

    Alexandre Bounine
     

26 Apr, 2006

1 commit


07 Nov, 2005

3 commits