Lines Matching refs:eq_table

241 	struct mlx4_eq *eq = &priv->eq_table.eq[vec];  in mlx4_set_eq_affinity_hint()
854 writel(priv->eq_table.clr_mask, priv->eq_table.clr_int); in mlx4_interrupt()
857 work |= mlx4_eq_int(dev, &priv->eq_table.eq[i]); in mlx4_interrupt()
940 if (!priv->eq_table.uar_map[index]) { in mlx4_get_eq_uar()
941 priv->eq_table.uar_map[index] = in mlx4_get_eq_uar()
946 if (!priv->eq_table.uar_map[index]) { in mlx4_get_eq_uar()
953 return priv->eq_table.uar_map[index] + 0x800 + 8 * (eq->eqn % 4); in mlx4_get_eq_uar()
962 if (priv->eq_table.uar_map[i]) { in mlx4_unmap_uar()
963 iounmap(priv->eq_table.uar_map[i]); in mlx4_unmap_uar()
964 priv->eq_table.uar_map[i] = NULL; in mlx4_unmap_uar()
1019 eq->eqn = mlx4_bitmap_alloc(&priv->eq_table.bitmap); in mlx4_create_eq()
1070 mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR); in mlx4_create_eq()
1114 mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR); in mlx4_free_eq()
1119 struct mlx4_eq_table *eq_table = &mlx4_priv(dev)->eq_table; in mlx4_free_irqs() local
1122 if (eq_table->have_irq) in mlx4_free_irqs()
1126 if (eq_table->eq[i].have_irq) { in mlx4_free_irqs()
1127 free_cpumask_var(eq_table->eq[i].affinity_mask); in mlx4_free_irqs()
1129 irq_set_affinity_hint(eq_table->eq[i].irq, NULL); in mlx4_free_irqs()
1131 free_irq(eq_table->eq[i].irq, eq_table->eq + i); in mlx4_free_irqs()
1132 eq_table->eq[i].have_irq = 0; in mlx4_free_irqs()
1135 kfree(eq_table->irq_names); in mlx4_free_irqs()
1164 priv->eq_table.eq = kcalloc(dev->caps.num_eqs - dev->caps.reserved_eqs, in mlx4_alloc_eq_table()
1165 sizeof(*priv->eq_table.eq), GFP_KERNEL); in mlx4_alloc_eq_table()
1166 if (!priv->eq_table.eq) in mlx4_alloc_eq_table()
1174 kfree(mlx4_priv(dev)->eq_table.eq); in mlx4_free_eq_table()
1183 priv->eq_table.uar_map = kcalloc(mlx4_num_eq_uar(dev), in mlx4_init_eq_table()
1184 sizeof(*priv->eq_table.uar_map), in mlx4_init_eq_table()
1186 if (!priv->eq_table.uar_map) { in mlx4_init_eq_table()
1191 err = mlx4_bitmap_init(&priv->eq_table.bitmap, in mlx4_init_eq_table()
1201 priv->eq_table.uar_map[i] = NULL; in mlx4_init_eq_table()
1208 priv->eq_table.clr_mask = in mlx4_init_eq_table()
1209 swab32(1 << (priv->eq_table.inta_pin & 31)); in mlx4_init_eq_table()
1210 priv->eq_table.clr_int = priv->clr_base + in mlx4_init_eq_table()
1211 (priv->eq_table.inta_pin < 32 ? 4 : 0); in mlx4_init_eq_table()
1214 priv->eq_table.irq_names = in mlx4_init_eq_table()
1218 if (!priv->eq_table.irq_names) { in mlx4_init_eq_table()
1227 0, &priv->eq_table.eq[MLX4_EQ_ASYNC]); in mlx4_init_eq_table()
1229 struct mlx4_eq *eq = &priv->eq_table.eq[i]; in mlx4_init_eq_table()
1267 snprintf(priv->eq_table.irq_names + in mlx4_init_eq_table()
1272 eq_name = priv->eq_table.irq_names + in mlx4_init_eq_table()
1275 err = request_irq(priv->eq_table.eq[MLX4_EQ_ASYNC].irq, in mlx4_init_eq_table()
1277 priv->eq_table.eq + MLX4_EQ_ASYNC); in mlx4_init_eq_table()
1281 priv->eq_table.eq[MLX4_EQ_ASYNC].have_irq = 1; in mlx4_init_eq_table()
1283 snprintf(priv->eq_table.irq_names, in mlx4_init_eq_table()
1288 IRQF_SHARED, priv->eq_table.irq_names, dev); in mlx4_init_eq_table()
1292 priv->eq_table.have_irq = 1; in mlx4_init_eq_table()
1296 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn); in mlx4_init_eq_table()
1299 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn, err); in mlx4_init_eq_table()
1302 eq_set_ci(&priv->eq_table.eq[MLX4_EQ_ASYNC], 1); in mlx4_init_eq_table()
1308 mlx4_free_eq(dev, &priv->eq_table.eq[--i]); in mlx4_init_eq_table()
1325 mlx4_bitmap_cleanup(&priv->eq_table.bitmap); in mlx4_init_eq_table()
1328 kfree(priv->eq_table.uar_map); in mlx4_init_eq_table()
1339 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn); in mlx4_cleanup_eq_table()
1352 mlx4_free_eq(dev, &priv->eq_table.eq[i]); in mlx4_cleanup_eq_table()
1358 mlx4_bitmap_cleanup(&priv->eq_table.bitmap); in mlx4_cleanup_eq_table()
1360 kfree(priv->eq_table.uar_map); in mlx4_cleanup_eq_table()
1386 priv->eq_table.eq[MLX4_CQ_TO_EQ_VECTOR(vector)].eqn); in mlx4_test_interrupt()
1400 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn); in mlx4_test_interrupt()
1416 return test_bit(port - 1, priv->eq_table.eq[vector].actv_ports.ports); in mlx4_is_eq_vector_valid()
1428 priv->eq_table.eq[i].actv_ports.ports); in mlx4_get_eqs_per_port()
1442 return !!(bitmap_weight(priv->eq_table.eq[vector].actv_ports.ports, in mlx4_is_eq_shared()
1467 priv->eq_table.eq[requested_vector].actv_ports.ports)) { in mlx4_assign_eq()
1476 eq = &priv->eq_table.eq[requested_vector]; in mlx4_assign_eq()
1488 struct mlx4_eq *eq = &priv->eq_table.eq[i]; in mlx4_assign_eq()
1508 snprintf(priv->eq_table.irq_names + in mlx4_assign_eq()
1513 err = request_irq(priv->eq_table.eq[*prequested_vector].irq, in mlx4_assign_eq()
1515 &priv->eq_table.irq_names[*prequested_vector << 5], in mlx4_assign_eq()
1516 priv->eq_table.eq + *prequested_vector); in mlx4_assign_eq()
1525 eq_set_ci(&priv->eq_table.eq[*prequested_vector], 1); in mlx4_assign_eq()
1526 priv->eq_table.eq[*prequested_vector].have_irq = 1; in mlx4_assign_eq()
1531 priv->eq_table.eq[*prequested_vector].ref_count++; in mlx4_assign_eq()
1549 return priv->eq_table.eq[MLX4_CQ_TO_EQ_VECTOR(cq_vec)].irq; in mlx4_eq_get_irq()
1559 priv->eq_table.eq[eq_vec].ref_count--; in mlx4_release_eq()