Alexandre Bounine
284fb68d00
rapidio: fix use of non-compatible registers
...
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 <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: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-08-25 16:25:34 -07:00
Alexandre Bounine
0bf2461fdd
rapidio: fix default routing initialization
...
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 <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: <stable@kernel.org > [2.6.37+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-05-18 02:55:22 -07:00
Alexandre Bounine
59f9996555
RapidIO/mpc85xx: fix possible mport registration problems
...
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 <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 >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-04-14 16:06:56 -07:00
Alexandre Bounine
13209c2a52
RapidIO: add IDT CPS-1432 switch definitions
...
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com >
Cc: Matt Porter <mporter@kernel.crashing.org >
Cc: Kumar Gala <galak@kernel.crashing.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-04-14 16:06:56 -07:00
Lucas De Marchi
25985edced
Fix common misspellings
...
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi >
2011-03-31 11:26:23 -03:00
Dan Carpenter
ad4ac17ad1
rapidio: fix potential null deref on failure path
...
If rio is not a switch then "rswitch" is null.
Signed-off-by: Dan Carpenter <error27@gmail.com >
Cc: Matt Porter <mporter@kernel.crashing.org >
Cc: Kumar Gala <galak@kernel.crashing.org >
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:44 -07:00
Alexandre Bounine
c1256ebe6a
rapidio: remove mport resource reservation from common RIO code
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:43 -07:00
Alexandre Bounine
569fccb6b4
rapidio: modify mport ID assignment
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:43 -07:00
Alexandre Bounine
2f809985d2
rapidio: modify subsystem and driver initialization sequence
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:42 -07:00
Alexandre Bounine
388b78adc9
rapidio: modify configuration to support PCI-SRIO controller
...
1. Add an option to include RapidIO support if the PCI is available.
2. Add FSL_RIO configuration option to enable controller selection.
3. Add RapidIO support option into x86 and MIPS architectures.
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com >
Acked-by: 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: Micha Nelissen <micha@neli.hopto.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:42 -07:00
Alexandre Bounine
f8f0626989
rapidio: add architecture specific callbacks
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:41 -07:00
Alexandre Bounine
cd8b974fad
rapidio: add new sysfs attributes
...
Add new sysfs attributes.
1. Routing information required to to reach the RIO device:
destid - device destination ID (real for for endpoint, route for switch)
hopcount - hopcount for maintenance requests (switches only)
2. device linking information:
lprev - name of device that precedes the given device in the enumeration
or discovery order (displayed along with of the port to which it
is attached).
lnext - names of devices (with corresponding port numbers) that are
attached to the given device as next in the enumeration or
discovery order (switches only)
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-03-23 19:46:41 -07:00
matt mooney
4ebdd58f46
rapidio: change to new flag variable
...
switches/ depends on RAPIDIO_DEBUG so the subdir-ccflags-y variant
seems to be appropriate here.
Signed-off-by: matt mooney <mfm@muteddisk.com >
Acked-by: WANG Cong <xiyou.wangcong@gmail.com >
Signed-off-by: Michal Marek <mmarek@suse.cz >
2011-03-17 14:05:35 +01:00
Alexandre Bounine
fe41947e1a
rapidio: fix sysfs config attribute to access 16MB of maint space
...
Fixes sysfs config attribute to allow access to entire 16MB maintenance
space of RapidIO devices.
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-02-25 15:07:37 -08:00
Randy Dunlap
9b310acc33
rapidio: fix new kernel-doc warnings
...
Fix new rapidio kernel-doc warnings:
Warning(drivers/rapidio/rio-scan.c:953): No description found for parameter 'prev'
Warning(drivers/rapidio/rio-scan.c:953): No description found for parameter 'prev_port'
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com >
Cc: Alexandre Bounine <alexandre.bounine@idt.com >
Cc: Matt Porter <mporter@kernel.crashing.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-22 20:32:37 -08:00
Alexandre Bounine
2e9d4d8484
rapidio: add new idt sRIO switches
...
Add new sRIO switch device IDs and enable a basic support for them.
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-13 08:03:18 -08:00
Alexandre Bounine
558bda6577
rapidio: use Component Tag for unified switch identification
...
Change the way how switchid value is set. Local counter variable does not
provide unified way to identify switch devices in a system with multiple
processors. Using local counter leads to the situation when the same RIO
switch has different switch ID for each processor. Replacing local
counter with unique portion of the Component Tag provides unified
reference to the switch by every processor in the system.
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-13 08:03:18 -08:00
Alexandre Bounine
17e9620563
rapidio: add device object linking into discovery
...
Add setting links between rio_dev objects into the discovery process.
This needed to report device connections on agent (non-host) processors
that perform RIO discovery. Originally, these links have been introduced
for enumerating host only to support error management.
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-13 08:03:18 -08:00
Alexandre Bounine
e6536927e6
rapidio: add definitions of Component Tag fields
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-13 08:03:18 -08:00
Alexandre Bounine
ded0578271
rapidio: integrate rio_switch into rio_dev
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-13 08:03:17 -08:00
Alexandre Bounine
a93192a5d2
rapidio: use common destid storage for endpoints and switches
...
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 <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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-01-13 08:03:17 -08:00
Dan Carpenter
88cf81fc89
rapidio: use resource_size()
...
The size calculation is done incorrectly here because it should include
both the start and end (end - start + 1). It's easiest to just use
resource_size() which does the right thing.
I was worried there was something non-standard going on because the
printk() subtracts "end - 1", but the rest of the file uses the normal
resource size calculations. This function is only called from
fsl_rio_setup() in arch/powerpc/sysdev/fsl_rio.c and the calculation
there is also:
port->iores.start = law_start;
port->iores.end = law_start + law_size - 1;
So I think this is the correct fix.
Signed-off-by: Dan Carpenter <error27@gmail.com >
Cc: Alexandre Bounine <alexandre.bounine@idt.com >
Acked-by: Li Yang <leoli@freescale.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2010-11-12 07:55:30 -08:00
Alexandre Bounine
1548bf316f
rapidio: fix destructive port EM initialization for Tsi568
...
Replace possibly damaging broadcast writes into the per-port SP_MODE
registers with individual writes for each port. This will preserve
individual port configurations in case if ports are configured
differently.
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2010-10-27 18:03:16 -07:00
Alexandre Bounine
2d4da0fc09
rapidio: fix maximum port number in tsi57x EM initialization
...
Replace hardcoded maximum port number with actual reported number of
switch ports.
Signed-off-by: Alexandre 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: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2010-10-27 18:03:16 -07:00
Alexandre Bounine
388c45ccfa
rapidio: fix IDLE2 bits corruption
...
RapidIO spec v.2.1 adds Idle Sequence 2 into LP-Serial Physical Layer.
The fix ensures that corresponding bits are not corrupted during error
handling.
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com >
Cc: Thomas Moll <thomas.moll@sysgo.com >
Cc: Matt Porter <mporter@kernel.crashing.org >
Cc: Li Yang <leoli@freescale.com >
Cc: Kumar Gala <galak@kernel.crashing.org >
Cc: Micha Nelissen <micha@neli.hopto.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2010-10-27 18:03:16 -07:00