Lines Matching refs:dev

94 enum ib_rate mthca_rate_to_ib(struct mthca_dev *dev, u8 mthca_rate, u8 port)
96 if (mthca_is_memfree(dev)) {
98 if (dev->limits.stat_rate_support == 0x3 && mthca_rate)
101 return memfree_rate_to_ib(mthca_rate, dev->rate[port - 1]);
103 return tavor_rate_to_ib(mthca_rate, dev->rate[port - 1]);
134 u8 mthca_get_rate(struct mthca_dev *dev, int static_rate, u8 port)
138 if (!static_rate || ib_rate_to_mult(static_rate) >= dev->rate[port - 1])
141 if (mthca_is_memfree(dev))
143 dev->rate[port - 1]);
147 if (!(dev->limits.stat_rate_support & (1 << rate)))
153 int mthca_create_ah(struct mthca_dev *dev,
163 if (mthca_is_memfree(dev)) {
171 !(dev->mthca_flags & MTHCA_FLAG_DDR_HIDDEN)) {
172 index = mthca_alloc(&dev->av_table.alloc);
183 ah->avdma = dev->av_table.ddr_av_base +
189 ah->av = pci_pool_alloc(dev->av_table.pool,
205 mthca_get_rate(dev, ah_attr->static_rate, ah_attr->port_num);
209 av->gid_index = (ah_attr->port_num - 1) * dev->limits.gid_table_len +
224 mthca_dbg(dev, "Created UDAV at %p/%08lx:\n",
232 memcpy_toio(dev->av_table.av_map + index * MTHCA_AV_SIZE,
240 int mthca_destroy_ah(struct mthca_dev *dev, struct mthca_ah *ah)
244 mthca_free(&dev->av_table.alloc,
245 (ah->avdma - dev->av_table.ddr_av_base) /
250 pci_pool_free(dev->av_table.pool, ah->av, ah->avdma);
266 int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
281 ib_get_cached_gid(&dev->ib_dev,
283 ah->av->gid_index % dev->limits.gid_table_len,
295 struct mthca_dev *dev = to_mdev(ibah->device);
305 attr->static_rate = mthca_rate_to_ib(dev, ah->av->msg_sr & 0x7,
317 (dev->limits.gid_table_len - 1);
324 int mthca_init_av_table(struct mthca_dev *dev)
328 if (mthca_is_memfree(dev))
331 err = mthca_alloc_init(&dev->av_table.alloc,
332 dev->av_table.num_ddr_avs,
333 dev->av_table.num_ddr_avs - 1,
338 dev->av_table.pool = pci_pool_create("mthca_av", dev->pdev,
341 if (!dev->av_table.pool)
344 if (!(dev->mthca_flags & MTHCA_FLAG_DDR_HIDDEN)) {
345 dev->av_table.av_map = ioremap(pci_resource_start(dev->pdev, 4) +
346 dev->av_table.ddr_av_base -
347 dev->ddr_start,
348 dev->av_table.num_ddr_avs *
350 if (!dev->av_table.av_map)
353 dev->av_table.av_map = NULL;
358 pci_pool_destroy(dev->av_table.pool);
361 mthca_alloc_cleanup(&dev->av_table.alloc);
365 void mthca_cleanup_av_table(struct mthca_dev *dev)
367 if (mthca_is_memfree(dev))
370 if (dev->av_table.av_map)
371 iounmap(dev->av_table.av_map);
372 pci_pool_destroy(dev->av_table.pool);
373 mthca_alloc_cleanup(&dev->av_table.alloc);