Lines Matching refs:av
159 struct mthca_av *av = NULL; in mthca_create_ah() local
164 ah->av = kmalloc(sizeof *ah->av, GFP_ATOMIC); in mthca_create_ah()
165 if (!ah->av) in mthca_create_ah()
169 av = ah->av; in mthca_create_ah()
178 av = kmalloc(sizeof *av, GFP_ATOMIC); in mthca_create_ah()
179 if (!av) in mthca_create_ah()
189 ah->av = pci_pool_alloc(dev->av_table.pool, in mthca_create_ah()
191 if (!ah->av) in mthca_create_ah()
194 av = ah->av; in mthca_create_ah()
199 memset(av, 0, MTHCA_AV_SIZE); in mthca_create_ah()
201 av->port_pd = cpu_to_be32(pd->pd_num | (ah_attr->port_num << 24)); in mthca_create_ah()
202 av->g_slid = ah_attr->src_path_bits; in mthca_create_ah()
203 av->dlid = cpu_to_be16(ah_attr->dlid); in mthca_create_ah()
204 av->msg_sr = (3 << 4) | /* 2K message */ in mthca_create_ah()
206 av->sl_tclass_flowlabel = cpu_to_be32(ah_attr->sl << 28); in mthca_create_ah()
208 av->g_slid |= 0x80; in mthca_create_ah()
209 av->gid_index = (ah_attr->port_num - 1) * dev->limits.gid_table_len + in mthca_create_ah()
211 av->hop_limit = ah_attr->grh.hop_limit; in mthca_create_ah()
212 av->sl_tclass_flowlabel |= in mthca_create_ah()
215 memcpy(av->dgid, ah_attr->grh.dgid.raw, 16); in mthca_create_ah()
218 av->dgid[3] = cpu_to_be32(2); in mthca_create_ah()
225 av, (unsigned long) ah->avdma); in mthca_create_ah()
228 j * 4, be32_to_cpu(((__be32 *) av)[j])); in mthca_create_ah()
233 av, MTHCA_AV_SIZE); in mthca_create_ah()
234 kfree(av); in mthca_create_ah()
250 pci_pool_free(dev->av_table.pool, ah->av, ah->avdma); in mthca_destroy_ah()
254 kfree(ah->av); in mthca_destroy_ah()
263 return !!(ah->av->g_slid & 0x80); in mthca_ah_grh_present()
272 header->lrh.service_level = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28; in mthca_read_ah()
273 header->lrh.destination_lid = ah->av->dlid; in mthca_read_ah()
274 header->lrh.source_lid = cpu_to_be16(ah->av->g_slid & 0x7f); in mthca_read_ah()
277 (be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 20) & 0xff; in mthca_read_ah()
279 ah->av->sl_tclass_flowlabel & cpu_to_be32(0xfffff); in mthca_read_ah()
280 header->grh.hop_limit = ah->av->hop_limit; in mthca_read_ah()
282 be32_to_cpu(ah->av->port_pd) >> 24, in mthca_read_ah()
283 ah->av->gid_index % dev->limits.gid_table_len, in mthca_read_ah()
286 ah->av->dgid, 16); in mthca_read_ah()
302 attr->dlid = be16_to_cpu(ah->av->dlid); in mthca_ah_query()
303 attr->sl = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28; in mthca_ah_query()
304 attr->port_num = be32_to_cpu(ah->av->port_pd) >> 24; in mthca_ah_query()
305 attr->static_rate = mthca_rate_to_ib(dev, ah->av->msg_sr & 0x7, in mthca_ah_query()
307 attr->src_path_bits = ah->av->g_slid & 0x7F; in mthca_ah_query()
312 be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 20; in mthca_ah_query()
314 be32_to_cpu(ah->av->sl_tclass_flowlabel) & 0xfffff; in mthca_ah_query()
315 attr->grh.hop_limit = ah->av->hop_limit; in mthca_ah_query()
316 attr->grh.sgid_index = ah->av->gid_index & in mthca_ah_query()
318 memcpy(attr->grh.dgid.raw, ah->av->dgid, 16); in mthca_ah_query()