LSI AXM55xx RapidIO: Fixes and Optimizations for Mbox and DirectIO

Added support for static allocation of Outbound DME descriptors
during initialization. Outbound Callbacks are made specific to
mbox instead of DMEs. Added support for handling multiple letters
in the inbound mbox,but the letter is hardcoded to zero wherever
the subsytem APIs do not have letter argument.

Added support to remove the memcpy (zero copy) for both inbound
and outbound. User selection of zero copy mode for mbox(0-4)through
sysfs. Axxia DME requires 256 byte aligned buffers. "memcpy" is
required when buffers are not 256 byte aligned (for eg., rionet).
Simplified handling of DME descriptors in circular buffer, with
power-of-2 descriptors. Removed the un-necessary spinlocks. Added
error and stats reporting during mbox processing. Fixed the mport
driver for proper functioning of rionet driver.

Fixed the source and destination in the DirectIO read/write functions.
Made sure the memory mapped window size is at least 1KB.
Merged the doorbell interrupt and misc. interrupt handling into
a single irq thread.Removed sleeping functions from atomic context.
Modified the api_lock to mutex.

Signed-off-by: Palani <palaniappan.ramanathan@lsi.com>