diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2017-06-27 00:50:16 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-27 15:48:47 -0400 |
commit | 064dc3196ebd2587ad9a4ca2d26629a20f819352 (patch) | |
tree | f17ad6740dbd94ef4b217aa21120bbfe1d125bae /drivers/net/ethernet/netronome/nfp/nfp_net_main.c | |
parent | d557ee6bdc6dc4df2ab8e00c2127120b4acbdfca (diff) | |
download | linux-064dc3196ebd2587ad9a4ca2d26629a20f819352.tar.gz linux-064dc3196ebd2587ad9a4ca2d26629a20f819352.tar.bz2 linux-064dc3196ebd2587ad9a4ca2d26629a20f819352.zip |
nfp: move area mapping helper into nfpcore
nfp_net_map_area() is a helper for mapping areas of NFP memory
defined in nfp_net_main.c. Move it to nfpcore to allow reuse
and rename accordingly. Create an additional helper -
nfp_cpp_area_alloc_acquire() the opposite of already existing
nfp_cpp_area_release_free().
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net_main.c')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 56 |
1 files changed, 2 insertions, 54 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c index 3169400dd474..16ee904db0cd 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c @@ -81,58 +81,6 @@ static int nfp_is_ready(struct nfp_pf *pf) } /** - * nfp_net_map_area() - Help function to map an area - * @cpp: NFP CPP handler - * @name: Name for the area - * @target: CPP target - * @addr: CPP address - * @size: Size of the area - * @area: Area handle (returned). - * - * This function is primarily to simplify the code in the main probe - * function. To undo the effect of this functions call - * @nfp_cpp_area_release_free(*area); - * - * Return: Pointer to memory mapped area or ERR_PTR - */ -static u8 __iomem *nfp_net_map_area(struct nfp_cpp *cpp, - const char *name, int isl, int target, - unsigned long long addr, unsigned long size, - struct nfp_cpp_area **area) -{ - u8 __iomem *res; - u32 dest; - int err; - - dest = NFP_CPP_ISLAND_ID(target, NFP_CPP_ACTION_RW, 0, isl); - - *area = nfp_cpp_area_alloc_with_name(cpp, dest, name, addr, size); - if (!*area) { - err = -EIO; - goto err_area; - } - - err = nfp_cpp_area_acquire(*area); - if (err < 0) - goto err_acquire; - - res = nfp_cpp_area_iomem(*area); - if (!res) { - err = -EIO; - goto err_map; - } - - return res; - -err_map: - nfp_cpp_area_release(*area); -err_acquire: - nfp_cpp_area_free(*area); -err_area: - return (u8 __iomem *)ERR_PTR(err); -} - -/** * nfp_net_get_mac_addr() - Get the MAC address. * @pf: NFP PF handle * @port: NFP port structure @@ -242,7 +190,7 @@ nfp_net_pf_map_rtsym(struct nfp_pf *pf, const char *name, const char *sym_fmt, return (u8 __iomem *)ERR_PTR(-EINVAL); } - mem = nfp_net_map_area(pf->cpp, name, sym->domain, sym->target, + mem = nfp_cpp_map_area(pf->cpp, name, sym->domain, sym->target, sym->addr, sym->size, area); if (IS_ERR(mem)) { nfp_err(pf->cpp, "Failed to map PF symbol %s: %ld\n", @@ -617,7 +565,7 @@ static int nfp_net_pci_map_mem(struct nfp_pf *pf) pf->vf_cfg_mem = NULL; } - mem = nfp_net_map_area(pf->cpp, "net.qc", 0, 0, + mem = nfp_cpp_map_area(pf->cpp, "net.qc", 0, 0, NFP_PCIE_QUEUE(0), NFP_QCP_QUEUE_AREA_SZ, &pf->qc_area); if (IS_ERR(mem)) { |