Skip to content
  • Serge Semin's avatar
    NTB: Add Messaging NTB API · bc3e49ad
    Serge Semin authored
    
    
    Some IDT NTB-capable PCIe-switches have message registers to communicate with
    peer devices. This patch adds new NTB API callback methods, which can be used
    to utilize these registers functionality:
     ntb_msg_count(); - get number of message registers
     ntb_msg_inbits(); - get bitfield of inbound message registers status
     ntb_msg_outbits(); - get bitfield of outbound message registers status
     ntb_msg_read_sts(); - read the inbound and outbound message registers status
     ntb_msg_clear_sts(); - clear status bits of message registers
     ntb_msg_set_mask(); - mask interrupts raised by status bits of message
    registers.
     ntb_msg_clear_mask(); - clear interrupts mask bits of message registers
     ntb_msg_read(midx, *pidx); - read message register with specified index,
    additionally getting peer port index which data received from
     ntb_msg_write(midx, pidx); - write data to the specified message register
    sending it to the passed peer device connected over a pidx port
     ntb_msg_event(); - notify driver context of a new message event
    
    Of course there is hardware which doesn't support Message registers, so
    this API is made optional.
    
    Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
    Acked-by: default avatarAllen Hubbe <Allen.Hubbe@dell.com>
    Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
    bc3e49ad