Deleted Added
full compact
provider.c (302408) provider.c (318798)
1/*
2 * Copyright (c) 2009-2013, 2016 Chelsio, Inc. All rights reserved.
3 *
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:

--- 16 unchanged lines hidden (view full) ---

25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 * SOFTWARE.
31 */
32#include <sys/cdefs.h>
1/*
2 * Copyright (c) 2009-2013, 2016 Chelsio, Inc. All rights reserved.
3 *
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:

--- 16 unchanged lines hidden (view full) ---

25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 * SOFTWARE.
31 */
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c 300676 2016-05-25 12:03:21Z hselasky $");
33__FBSDID("$FreeBSD: stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c 318798 2017-05-24 18:14:57Z np $");
34
35#define LINUXKPI_PARAM_PREFIX iw_cxgbe_
36
37#include "opt_inet.h"
38
39#ifdef TCP_OFFLOAD
40#include <asm/pgtable.h>
41#include <linux/page.h>

--- 143 unchanged lines hidden (view full) ---

185 /*
186 * Map user DB or OCQP memory...
187 */
188 paddr = vtophys(addr);
189 CTR4(KTR_IW_CXGBE,
190 "%s:6 USER DB-GTS addr %p region %p, reglen %u",
191 __func__, addr, va_udbs_res, len_udbs_res);
192#ifdef DOT5
34
35#define LINUXKPI_PARAM_PREFIX iw_cxgbe_
36
37#include "opt_inet.h"
38
39#ifdef TCP_OFFLOAD
40#include <asm/pgtable.h>
41#include <linux/page.h>

--- 143 unchanged lines hidden (view full) ---

185 /*
186 * Map user DB or OCQP memory...
187 */
188 paddr = vtophys(addr);
189 CTR4(KTR_IW_CXGBE,
190 "%s:6 USER DB-GTS addr %p region %p, reglen %u",
191 __func__, addr, va_udbs_res, len_udbs_res);
192#ifdef DOT5
193 if (is_t5(rdev->lldi.adapter_type) && map_udb_as_wc)
193 if (!is_t4(rdev->lldi.adapter_type) && map_udb_as_wc)
194 vma->vm_page_prot = t4_pgprot_wc(vma->vm_page_prot);
195 else
196#endif
197 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
198 ret = io_remap_pfn_range(vma, vma->vm_start,
199 paddr >> PAGE_SHIFT,
200 len, vma->vm_page_prot);
201 } else {

--- 100 unchanged lines hidden (view full) ---

302 return (0);
303}
304
305static int
306c4iw_query_device(struct ib_device *ibdev, struct ib_device_attr *props)
307{
308 struct c4iw_dev *dev = to_c4iw_dev(ibdev);
309 struct adapter *sc = dev->rdev.adap;
194 vma->vm_page_prot = t4_pgprot_wc(vma->vm_page_prot);
195 else
196#endif
197 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
198 ret = io_remap_pfn_range(vma, vma->vm_start,
199 paddr >> PAGE_SHIFT,
200 len, vma->vm_page_prot);
201 } else {

--- 100 unchanged lines hidden (view full) ---

302 return (0);
303}
304
305static int
306c4iw_query_device(struct ib_device *ibdev, struct ib_device_attr *props)
307{
308 struct c4iw_dev *dev = to_c4iw_dev(ibdev);
309 struct adapter *sc = dev->rdev.adap;
310 const int spg_ndesc = sc->params.sge.spg_len / EQ_ESIZE;
310
311 CTR3(KTR_IW_CXGBE, "%s ibdev %p, props %p", __func__, ibdev, props);
312
313 memset(props, 0, sizeof *props);
314 memcpy(&props->sys_image_guid, sc->port[0]->vi[0].hw_addr,
315 ETHER_ADDR_LEN);
316 props->hw_ver = sc->params.chipid;
317 props->fw_ver = sc->params.fw_vers;
318 props->device_cap_flags = dev->device_cap_flags;
319 props->page_size_cap = T4_PAGESIZE_MASK;
320 props->vendor_id = pci_get_vendor(sc->dev);
321 props->vendor_part_id = pci_get_device(sc->dev);
322 props->max_mr_size = T4_MAX_MR_SIZE;
311
312 CTR3(KTR_IW_CXGBE, "%s ibdev %p, props %p", __func__, ibdev, props);
313
314 memset(props, 0, sizeof *props);
315 memcpy(&props->sys_image_guid, sc->port[0]->vi[0].hw_addr,
316 ETHER_ADDR_LEN);
317 props->hw_ver = sc->params.chipid;
318 props->fw_ver = sc->params.fw_vers;
319 props->device_cap_flags = dev->device_cap_flags;
320 props->page_size_cap = T4_PAGESIZE_MASK;
321 props->vendor_id = pci_get_vendor(sc->dev);
322 props->vendor_part_id = pci_get_device(sc->dev);
323 props->max_mr_size = T4_MAX_MR_SIZE;
323 props->max_qp = T4_MAX_NUM_QP;
324 props->max_qp_wr = T4_MAX_QP_DEPTH;
324 props->max_qp = sc->vres.qp.size / 2;
325 props->max_qp_wr = T4_MAX_QP_DEPTH(spg_ndesc);
325 props->max_sge = T4_MAX_RECV_SGE;
326 props->max_sge_rd = 1;
326 props->max_sge = T4_MAX_RECV_SGE;
327 props->max_sge_rd = 1;
327 props->max_qp_rd_atom = c4iw_max_read_depth;
328 props->max_qp_init_rd_atom = c4iw_max_read_depth;
329 props->max_cq = T4_MAX_NUM_CQ;
328 props->max_res_rd_atom = sc->params.max_ird_adapter;
329 props->max_qp_rd_atom = min(sc->params.max_ordird_qp,
330 c4iw_max_read_depth);
331 props->max_qp_init_rd_atom = props->max_qp_rd_atom;
332 props->max_cq = sc->vres.qp.size;
330 props->max_cqe = T4_MAX_CQ_DEPTH;
331 props->max_mr = c4iw_num_stags(&dev->rdev);
332 props->max_pd = T4_MAX_NUM_PD;
333 props->local_ca_ack_delay = 0;
334 props->max_fast_reg_page_list_len = T4_MAX_FR_DEPTH;
335
336 return (0);
337}

--- 86 unchanged lines hidden (view full) ---

424 (1ull << IB_USER_VERBS_CMD_POLL_CQ) |
425 (1ull << IB_USER_VERBS_CMD_DESTROY_QP) |
426 (1ull << IB_USER_VERBS_CMD_POST_SEND) |
427 (1ull << IB_USER_VERBS_CMD_POST_RECV);
428 ibdev->node_type = RDMA_NODE_RNIC;
429 strlcpy(ibdev->node_desc, C4IW_NODE_DESC, sizeof(ibdev->node_desc));
430 ibdev->phys_port_cnt = sc->params.nports;
431 ibdev->num_comp_vectors = 1;
333 props->max_cqe = T4_MAX_CQ_DEPTH;
334 props->max_mr = c4iw_num_stags(&dev->rdev);
335 props->max_pd = T4_MAX_NUM_PD;
336 props->local_ca_ack_delay = 0;
337 props->max_fast_reg_page_list_len = T4_MAX_FR_DEPTH;
338
339 return (0);
340}

--- 86 unchanged lines hidden (view full) ---

427 (1ull << IB_USER_VERBS_CMD_POLL_CQ) |
428 (1ull << IB_USER_VERBS_CMD_DESTROY_QP) |
429 (1ull << IB_USER_VERBS_CMD_POST_SEND) |
430 (1ull << IB_USER_VERBS_CMD_POST_RECV);
431 ibdev->node_type = RDMA_NODE_RNIC;
432 strlcpy(ibdev->node_desc, C4IW_NODE_DESC, sizeof(ibdev->node_desc));
433 ibdev->phys_port_cnt = sc->params.nports;
434 ibdev->num_comp_vectors = 1;
432 ibdev->dma_device = sc->dev;
435 ibdev->dma_device = NULL;
433 ibdev->query_device = c4iw_query_device;
434 ibdev->query_port = c4iw_query_port;
435 ibdev->modify_port = c4iw_modify_port;
436 ibdev->query_pkey = c4iw_query_pkey;
437 ibdev->query_gid = c4iw_query_gid;
438 ibdev->alloc_ucontext = c4iw_alloc_ucontext;
439 ibdev->dealloc_ucontext = c4iw_dealloc_ucontext;
440 ibdev->mmap = c4iw_mmap;

--- 64 unchanged lines hidden ---
436 ibdev->query_device = c4iw_query_device;
437 ibdev->query_port = c4iw_query_port;
438 ibdev->modify_port = c4iw_modify_port;
439 ibdev->query_pkey = c4iw_query_pkey;
440 ibdev->query_gid = c4iw_query_gid;
441 ibdev->alloc_ucontext = c4iw_alloc_ucontext;
442 ibdev->dealloc_ucontext = c4iw_dealloc_ucontext;
443 ibdev->mmap = c4iw_mmap;

--- 64 unchanged lines hidden ---