mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
NTB: Use DMA Engine to Transmit and Receive
Allocate and use a DMA engine channel to transmit and receive data over NTB. If none is allocated, fall back to using the CPU to transfer data. Signed-off-by: Jon Mason <jon.mason@intel.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com>
This commit is contained in:
@@ -349,6 +349,23 @@ int ntb_read_remote_spad(struct ntb_device *ndev, unsigned int idx, u32 *val)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ntb_get_mw_base() - get addr for the NTB memory window
|
||||
* @ndev: pointer to ntb_device instance
|
||||
* @mw: memory window number
|
||||
*
|
||||
* This function provides the base address of the memory window specified.
|
||||
*
|
||||
* RETURNS: address, or NULL on error.
|
||||
*/
|
||||
resource_size_t ntb_get_mw_base(struct ntb_device *ndev, unsigned int mw)
|
||||
{
|
||||
if (mw >= ntb_max_mw(ndev))
|
||||
return 0;
|
||||
|
||||
return pci_resource_start(ndev->pdev, MW_TO_BAR(mw));
|
||||
}
|
||||
|
||||
/**
|
||||
* ntb_get_mw_vbase() - get virtual addr for the NTB memory window
|
||||
* @ndev: pointer to ntb_device instance
|
||||
|
||||
@@ -240,6 +240,7 @@ int ntb_write_local_spad(struct ntb_device *ndev, unsigned int idx, u32 val);
|
||||
int ntb_read_local_spad(struct ntb_device *ndev, unsigned int idx, u32 *val);
|
||||
int ntb_write_remote_spad(struct ntb_device *ndev, unsigned int idx, u32 val);
|
||||
int ntb_read_remote_spad(struct ntb_device *ndev, unsigned int idx, u32 *val);
|
||||
resource_size_t ntb_get_mw_base(struct ntb_device *ndev, unsigned int mw);
|
||||
void __iomem *ntb_get_mw_vbase(struct ntb_device *ndev, unsigned int mw);
|
||||
u64 ntb_get_mw_size(struct ntb_device *ndev, unsigned int mw);
|
||||
void ntb_ring_sdb(struct ntb_device *ndev, unsigned int idx);
|
||||
|
||||
+279
-49
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user