bna: MSGQ Implementation
authorRasesh Mody <rmody@brocade.com>
Mon, 8 Aug 2011 16:21:35 +0000 (16:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Aug 2011 14:30:12 +0000 (07:30 -0700)
commitaf027a34f34a8c0794a72dae8367e268eae89dbb
tree4af30be7fe275e1cb2b360c01e0d04a1ba81ad75
parenta6a5580c4d90788d67a77c689d3ab22aa5eecfc3
bna: MSGQ Implementation

Change details:
 - Currently modules communicate with the FW using 32 byte command and
   response register. This limits the size of the command and response
   messages exchanged with the FW to 32 bytes. We need a mechanism to
   exchange the comamnds and responses exchange with FW that exceeds 32 bytes.

 - MSGQ implementation provides that facility. It removes the assumption that
   command/response queue size is precisely calculated to accommodate all
   concurrent FW commands/responses. The queue depth is made variable now, defined
   by a macro. A waiting command list is implemented to hold all the commands
   when there is no place in the command queue. Callback is implemented for
   each command entry to invoke the module posting the command, when there is
   space in the command queue and the command was finally posted to the queue.
   Module/Object information is embedded in the response for tracking purpose.

Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/brocade/bna/Makefile
drivers/net/ethernet/brocade/bna/bfa_ioc.c
drivers/net/ethernet/brocade/bna/bfa_ioc.h
drivers/net/ethernet/brocade/bna/bfa_msgq.c [new file with mode: 0644]
drivers/net/ethernet/brocade/bna/bfa_msgq.h [new file with mode: 0644]
drivers/net/ethernet/brocade/bna/bfi.h
drivers/net/ethernet/brocade/bna/bna_ctrl.c