[RAPIDIO] Auto-probe the RapidIO system size
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 <wei.zhang@freescale.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:

committed by
Paul Mackerras

parent
cc2bb6968a
commit
e042323607
@@ -23,7 +23,6 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/rio_regs.h>
|
||||
|
||||
#define RIO_ANY_DESTID 0xff
|
||||
#define RIO_NO_HOPCOUNT -1
|
||||
#define RIO_INVALID_DESTID 0xffff
|
||||
|
||||
@@ -39,11 +38,8 @@
|
||||
entry is invalid (no route
|
||||
exists for the device ID) */
|
||||
|
||||
#ifdef CONFIG_RAPIDIO_8_BIT_TRANSPORT
|
||||
#define RIO_MAX_ROUTE_ENTRIES (1 << 8)
|
||||
#else
|
||||
#define RIO_MAX_ROUTE_ENTRIES (1 << 16)
|
||||
#endif
|
||||
#define RIO_MAX_ROUTE_ENTRIES(size) (size ? (1 << 16) : (1 << 8))
|
||||
#define RIO_ANY_DESTID(size) (size ? 0xffff : 0xff)
|
||||
|
||||
#define RIO_MAX_MBOX 4
|
||||
#define RIO_MAX_MSG_SIZE 0x1000
|
||||
@@ -178,6 +174,10 @@ struct rio_mport {
|
||||
unsigned char id; /* port ID, unique among all ports */
|
||||
unsigned char index; /* port index, unique among all port
|
||||
interfaces of the same type */
|
||||
unsigned int sys_size; /* RapidIO common transport system size.
|
||||
* 0 - Small size. 256 devices.
|
||||
* 1 - Large size, 65536 devices.
|
||||
*/
|
||||
unsigned char name[40];
|
||||
void *priv; /* Master port private data */
|
||||
};
|
||||
@@ -213,7 +213,7 @@ struct rio_switch {
|
||||
u16 switchid;
|
||||
u16 hopcount;
|
||||
u16 destid;
|
||||
u8 route_table[RIO_MAX_ROUTE_ENTRIES];
|
||||
u8 *route_table;
|
||||
int (*add_entry) (struct rio_mport * mport, u16 destid, u8 hopcount,
|
||||
u16 table, u16 route_destid, u8 route_port);
|
||||
int (*get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount,
|
||||
|
Reference in New Issue
Block a user