diff options
| author | Don Hiatt <don.hiatt@intel.com> | 2017-08-04 13:53:58 -0700 |
|---|---|---|
| committer | Doug Ledford <dledford@redhat.com> | 2017-08-22 14:22:37 -0400 |
| commit | 72c07e2b671eda1cf3e8ebabc664f542f673b997 (patch) | |
| tree | 8749f1ca48169b9c85d55e545c44bd75b9f8019a /drivers/infiniband/hw/hfi1/chip.c | |
| parent | 13c19222889daf91da36b7fb63b5d5d9ce89b377 (diff) | |
| download | linux-72c07e2b671eda1cf3e8ebabc664f542f673b997.tar.gz linux-72c07e2b671eda1cf3e8ebabc664f542f673b997.tar.bz2 linux-72c07e2b671eda1cf3e8ebabc664f542f673b997.zip | |
IB/hfi1: Add support to receive 16B bypass packets
We introduce a struct hfi1_16b_header to support 16B headers.
16B bypass packets are received by the driver and processed
similar to 9B packets. Add basic support to handle 16B packets.
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/hfi1/chip.c')
| -rw-r--r-- | drivers/infiniband/hw/hfi1/chip.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c index 1446c16bc8a8..ee1324cce25a 100644 --- a/drivers/infiniband/hw/hfi1/chip.c +++ b/drivers/infiniband/hw/hfi1/chip.c @@ -14468,6 +14468,7 @@ void hfi1_deinit_vnic_rsm(struct hfi1_devdata *dd) static void init_rxe(struct hfi1_devdata *dd) { struct rsm_map_table *rmt; + u64 val; /* enable all receive errors */ write_csr(dd, RCV_ERR_MASK, ~0ull); @@ -14492,6 +14493,11 @@ static void init_rxe(struct hfi1_devdata *dd) * (64 bytes). Max_Payload_Size is possibly modified upward in * tune_pcie_caps() which is called after this routine. */ + + /* Have 16 bytes (4DW) of bypass header available in header queue */ + val = read_csr(dd, RCV_BYPASS); + val |= (4ull << 16); + write_csr(dd, RCV_BYPASS, val); } static void init_other(struct hfi1_devdata *dd) |
