Lines Matching refs:eq_table
807 writel(priv->eq_table.clr_mask, priv->eq_table.clr_int); in mlx4_interrupt()
810 work |= mlx4_eq_int(dev, &priv->eq_table.eq[i]); in mlx4_interrupt()
893 if (!priv->eq_table.uar_map[index]) { in mlx4_get_eq_uar()
894 priv->eq_table.uar_map[index] = in mlx4_get_eq_uar()
898 if (!priv->eq_table.uar_map[index]) { in mlx4_get_eq_uar()
905 return priv->eq_table.uar_map[index] + 0x800 + 8 * (eq->eqn % 4); in mlx4_get_eq_uar()
914 if (priv->eq_table.uar_map[i]) { in mlx4_unmap_uar()
915 iounmap(priv->eq_table.uar_map[i]); in mlx4_unmap_uar()
916 priv->eq_table.uar_map[i] = NULL; in mlx4_unmap_uar()
971 eq->eqn = mlx4_bitmap_alloc(&priv->eq_table.bitmap); in mlx4_create_eq()
1022 mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR); in mlx4_create_eq()
1066 mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR); in mlx4_free_eq()
1071 struct mlx4_eq_table *eq_table = &mlx4_priv(dev)->eq_table; in mlx4_free_irqs() local
1075 if (eq_table->have_irq) in mlx4_free_irqs()
1079 if (eq_table->eq[i].have_irq) { in mlx4_free_irqs()
1080 free_irq(eq_table->eq[i].irq, eq_table->eq + i); in mlx4_free_irqs()
1081 eq_table->eq[i].have_irq = 0; in mlx4_free_irqs()
1092 free_irq(priv->eq_table.eq[vec].irq, in mlx4_free_irqs()
1093 &priv->eq_table.eq[vec]); in mlx4_free_irqs()
1098 kfree(eq_table->irq_names); in mlx4_free_irqs()
1127 priv->eq_table.eq = kcalloc(dev->caps.num_eqs - dev->caps.reserved_eqs, in mlx4_alloc_eq_table()
1128 sizeof *priv->eq_table.eq, GFP_KERNEL); in mlx4_alloc_eq_table()
1129 if (!priv->eq_table.eq) in mlx4_alloc_eq_table()
1137 kfree(mlx4_priv(dev)->eq_table.eq); in mlx4_free_eq_table()
1146 priv->eq_table.uar_map = kcalloc(mlx4_num_eq_uar(dev), in mlx4_init_eq_table()
1147 sizeof *priv->eq_table.uar_map, in mlx4_init_eq_table()
1149 if (!priv->eq_table.uar_map) { in mlx4_init_eq_table()
1154 err = mlx4_bitmap_init(&priv->eq_table.bitmap, in mlx4_init_eq_table()
1164 priv->eq_table.uar_map[i] = NULL; in mlx4_init_eq_table()
1171 priv->eq_table.clr_mask = in mlx4_init_eq_table()
1172 swab32(1 << (priv->eq_table.inta_pin & 31)); in mlx4_init_eq_table()
1173 priv->eq_table.clr_int = priv->clr_base + in mlx4_init_eq_table()
1174 (priv->eq_table.inta_pin < 32 ? 4 : 0); in mlx4_init_eq_table()
1177 priv->eq_table.irq_names = in mlx4_init_eq_table()
1181 if (!priv->eq_table.irq_names) { in mlx4_init_eq_table()
1191 &priv->eq_table.eq[i]); in mlx4_init_eq_table()
1200 &priv->eq_table.eq[dev->caps.num_comp_vectors]); in mlx4_init_eq_table()
1212 &priv->eq_table.eq[i]); in mlx4_init_eq_table()
1225 snprintf(priv->eq_table.irq_names + in mlx4_init_eq_table()
1231 snprintf(priv->eq_table.irq_names + in mlx4_init_eq_table()
1238 eq_name = priv->eq_table.irq_names + in mlx4_init_eq_table()
1240 err = request_irq(priv->eq_table.eq[i].irq, in mlx4_init_eq_table()
1242 priv->eq_table.eq + i); in mlx4_init_eq_table()
1246 priv->eq_table.eq[i].have_irq = 1; in mlx4_init_eq_table()
1249 snprintf(priv->eq_table.irq_names, in mlx4_init_eq_table()
1254 IRQF_SHARED, priv->eq_table.irq_names, dev); in mlx4_init_eq_table()
1258 priv->eq_table.have_irq = 1; in mlx4_init_eq_table()
1262 priv->eq_table.eq[dev->caps.num_comp_vectors].eqn); in mlx4_init_eq_table()
1265 priv->eq_table.eq[dev->caps.num_comp_vectors].eqn, err); in mlx4_init_eq_table()
1268 eq_set_ci(&priv->eq_table.eq[i], 1); in mlx4_init_eq_table()
1273 mlx4_free_eq(dev, &priv->eq_table.eq[dev->caps.num_comp_vectors]); in mlx4_init_eq_table()
1280 mlx4_free_eq(dev, &priv->eq_table.eq[i]); in mlx4_init_eq_table()
1289 mlx4_bitmap_cleanup(&priv->eq_table.bitmap); in mlx4_init_eq_table()
1292 kfree(priv->eq_table.uar_map); in mlx4_init_eq_table()
1303 priv->eq_table.eq[dev->caps.num_comp_vectors].eqn); in mlx4_cleanup_eq_table()
1308 mlx4_free_eq(dev, &priv->eq_table.eq[i]); in mlx4_cleanup_eq_table()
1314 mlx4_bitmap_cleanup(&priv->eq_table.bitmap); in mlx4_cleanup_eq_table()
1316 kfree(priv->eq_table.uar_map); in mlx4_cleanup_eq_table()
1344 priv->eq_table.eq[i].eqn); in mlx4_test_interrupts()
1358 priv->eq_table.eq[dev->caps.num_comp_vectors].eqn); in mlx4_test_interrupts()
1375 snprintf(priv->eq_table.irq_names + in mlx4_assign_eq()
1381 priv->eq_table.eq[vec].irq); in mlx4_assign_eq()
1386 err = request_irq(priv->eq_table.eq[vec].irq, in mlx4_assign_eq()
1388 &priv->eq_table.irq_names[vec<<5], in mlx4_assign_eq()
1389 priv->eq_table.eq + vec); in mlx4_assign_eq()
1398 eq_set_ci(&priv->eq_table.eq[vec], 1); in mlx4_assign_eq()
1417 return priv->eq_table.eq[vec].irq; in mlx4_eq_get_irq()
1432 free_irq(priv->eq_table.eq[vec].irq, in mlx4_release_eq()
1433 &priv->eq_table.eq[vec]); in mlx4_release_eq()