mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [RAPIDIO] Change RapidIO doorbell source and target ID field to 16-bit [RAPIDIO] Add RapidIO connection info print out and re-training for broken connections [RAPIDIO] Add serial RapidIO controller support, which includes MPC8548, MPC8641 [RAPIDIO] Add RapidIO node probing into MPC86xx_HPCN board id table [RAPIDIO] Add RapidIO node into MPC8641HPCN dts file [RAPIDIO] Auto-probe the RapidIO system size [RAPIDIO] Add OF-tree support to RapidIO controller driver [RAPIDIO] Add RapidIO multi mport support [RAPIDIO] Move include/asm-ppc/rio.h to asm-powerpc [RAPIDIO] Add RapidIO option to kernel configuration [RAPIDIO] Change RIO function mpc85xx_ to fsl_ [POWERPC] Provide walk_memory_resource() for powerpc [POWERPC] Update lmb data structures for hotplug memory add/remove [POWERPC] Hotplug memory remove notifications for powerpc [POWERPC] windfarm: Add PowerMac 12,1 support [POWERPC] Fix building of pmac32 when CONFIG_NVRAM=m [POWERPC] Add IRQSTACKS support on ppc32 [POWERPC] Use __always_inline for xchg* and cmpxchg* [POWERPC] Add fast little-endian switch system call
This commit is contained in:
commit
867a89e0b7
41 changed files with 2037 additions and 388 deletions
|
|
@ -40,7 +40,8 @@ extern struct lmb lmb;
|
|||
|
||||
extern void __init lmb_init(void);
|
||||
extern void __init lmb_analyze(void);
|
||||
extern long __init lmb_add(u64 base, u64 size);
|
||||
extern long lmb_add(u64 base, u64 size);
|
||||
extern long lmb_remove(u64 base, u64 size);
|
||||
extern long __init lmb_reserve(u64 base, u64 size);
|
||||
extern u64 __init lmb_alloc_nid(u64 size, u64 align, int nid,
|
||||
u64 (*nid_range)(u64, u64, int *));
|
||||
|
|
@ -53,6 +54,7 @@ extern u64 __init lmb_phys_mem_size(void);
|
|||
extern u64 __init lmb_end_of_DRAM(void);
|
||||
extern void __init lmb_enforce_memory_limit(u64 memory_limit);
|
||||
extern int __init lmb_is_reserved(u64 addr);
|
||||
extern int lmb_find(struct lmb_property *res);
|
||||
|
||||
extern void lmb_dump_all(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -149,6 +145,11 @@ struct rio_dbell {
|
|||
void *dev_id;
|
||||
};
|
||||
|
||||
enum rio_phy_type {
|
||||
RIO_PHY_PARALLEL,
|
||||
RIO_PHY_SERIAL,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rio_mport - RIO master port info
|
||||
* @dbells: List of doorbell events
|
||||
|
|
@ -163,6 +164,7 @@ struct rio_dbell {
|
|||
* @id: Port ID, unique among all ports
|
||||
* @index: Port index, unique among all port interfaces of the same type
|
||||
* @name: Port name string
|
||||
* @priv: Master port private data
|
||||
*/
|
||||
struct rio_mport {
|
||||
struct list_head dbells; /* list of doorbell events */
|
||||
|
|
@ -177,7 +179,13 @@ 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.
|
||||
*/
|
||||
enum rio_phy_type phy_type; /* RapidIO phy type */
|
||||
unsigned char name[40];
|
||||
void *priv; /* Master port private data */
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -211,7 +219,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,
|
||||
|
|
@ -229,13 +237,15 @@ struct rio_switch {
|
|||
* @dsend: Callback to send a doorbell message.
|
||||
*/
|
||||
struct rio_ops {
|
||||
int (*lcread) (int index, u32 offset, int len, u32 * data);
|
||||
int (*lcwrite) (int index, u32 offset, int len, u32 data);
|
||||
int (*cread) (int index, u16 destid, u8 hopcount, u32 offset, int len,
|
||||
u32 * data);
|
||||
int (*cwrite) (int index, u16 destid, u8 hopcount, u32 offset, int len,
|
||||
u32 data);
|
||||
int (*dsend) (int index, u16 destid, u16 data);
|
||||
int (*lcread) (struct rio_mport *mport, int index, u32 offset, int len,
|
||||
u32 *data);
|
||||
int (*lcwrite) (struct rio_mport *mport, int index, u32 offset, int len,
|
||||
u32 data);
|
||||
int (*cread) (struct rio_mport *mport, int index, u16 destid,
|
||||
u8 hopcount, u32 offset, int len, u32 *data);
|
||||
int (*cwrite) (struct rio_mport *mport, int index, u16 destid,
|
||||
u8 hopcount, u32 offset, int len, u32 data);
|
||||
int (*dsend) (struct rio_mport *mport, int index, u16 destid, u16 data);
|
||||
};
|
||||
|
||||
#define RIO_RESOURCE_MEM 0x00000100
|
||||
|
|
|
|||
Loading…
Reference in a new issue