Lines Matching refs:eq_table
241 struct mlx4_eq *eq = &priv->eq_table.eq[vec];
856 writel(priv->eq_table.clr_mask, priv->eq_table.clr_int);
859 work |= mlx4_eq_int(dev, &priv->eq_table.eq[i]);
942 if (!priv->eq_table.uar_map[index]) {
943 priv->eq_table.uar_map[index] =
948 if (!priv->eq_table.uar_map[index]) {
955 return priv->eq_table.uar_map[index] + 0x800 + 8 * (eq->eqn % 4);
964 if (priv->eq_table.uar_map[i]) {
965 iounmap(priv->eq_table.uar_map[i]);
966 priv->eq_table.uar_map[i] = NULL;
1019 eq->eqn = mlx4_bitmap_alloc(&priv->eq_table.bitmap);
1069 mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR);
1113 mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR);
1118 struct mlx4_eq_table *eq_table = &mlx4_priv(dev)->eq_table;
1121 if (eq_table->have_irq)
1125 if (eq_table->eq[i].have_irq) {
1126 free_cpumask_var(eq_table->eq[i].affinity_mask);
1127 irq_update_affinity_hint(eq_table->eq[i].irq, NULL);
1128 free_irq(eq_table->eq[i].irq, eq_table->eq + i);
1129 eq_table->eq[i].have_irq = 0;
1132 kfree(eq_table->irq_names);
1161 priv->eq_table.eq = kcalloc(dev->caps.num_eqs - dev->caps.reserved_eqs,
1162 sizeof(*priv->eq_table.eq), GFP_KERNEL);
1163 if (!priv->eq_table.eq)
1171 kfree(mlx4_priv(dev)->eq_table.eq);
1180 priv->eq_table.uar_map = kcalloc(mlx4_num_eq_uar(dev),
1181 sizeof(*priv->eq_table.uar_map),
1183 if (!priv->eq_table.uar_map) {
1188 err = mlx4_bitmap_init(&priv->eq_table.bitmap,
1198 priv->eq_table.uar_map[i] = NULL;
1205 priv->eq_table.clr_mask =
1206 swab32(1 << (priv->eq_table.inta_pin & 31));
1207 priv->eq_table.clr_int = priv->clr_base +
1208 (priv->eq_table.inta_pin < 32 ? 4 : 0);
1211 priv->eq_table.irq_names =
1215 if (!priv->eq_table.irq_names) {
1224 0, &priv->eq_table.eq[MLX4_EQ_ASYNC]);
1226 struct mlx4_eq *eq = &priv->eq_table.eq[i];
1264 snprintf(priv->eq_table.irq_names +
1269 eq_name = priv->eq_table.irq_names +
1272 err = request_irq(priv->eq_table.eq[MLX4_EQ_ASYNC].irq,
1274 priv->eq_table.eq + MLX4_EQ_ASYNC);
1278 priv->eq_table.eq[MLX4_EQ_ASYNC].have_irq = 1;
1280 snprintf(priv->eq_table.irq_names,
1285 IRQF_SHARED, priv->eq_table.irq_names, dev);
1289 priv->eq_table.have_irq = 1;
1293 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn);
1296 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn, err);
1299 eq_set_ci(&priv->eq_table.eq[MLX4_EQ_ASYNC], 1);
1305 mlx4_free_eq(dev, &priv->eq_table.eq[--i]);
1322 mlx4_bitmap_cleanup(&priv->eq_table.bitmap);
1325 kfree(priv->eq_table.uar_map);
1336 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn);
1349 mlx4_free_eq(dev, &priv->eq_table.eq[i]);
1355 mlx4_bitmap_cleanup(&priv->eq_table.bitmap);
1357 kfree(priv->eq_table.uar_map);
1383 priv->eq_table.eq[MLX4_CQ_TO_EQ_VECTOR(vector)].eqn);
1397 priv->eq_table.eq[MLX4_EQ_ASYNC].eqn);
1413 return test_bit(port - 1, priv->eq_table.eq[vector].actv_ports.ports);
1425 priv->eq_table.eq[i].actv_ports.ports);
1439 return !!(bitmap_weight(priv->eq_table.eq[vector].actv_ports.ports,
1464 priv->eq_table.eq[requested_vector].actv_ports.ports)) {
1473 eq = &priv->eq_table.eq[requested_vector];
1485 struct mlx4_eq *eq = &priv->eq_table.eq[i];
1505 snprintf(priv->eq_table.irq_names +
1510 err = request_irq(priv->eq_table.eq[*prequested_vector].irq,
1512 &priv->eq_table.irq_names[*prequested_vector << 5],
1513 priv->eq_table.eq + *prequested_vector);
1522 eq_set_ci(&priv->eq_table.eq[*prequested_vector], 1);
1523 priv->eq_table.eq[*prequested_vector].have_irq = 1;
1528 priv->eq_table.eq[*prequested_vector].ref_count++;
1546 return priv->eq_table.eq[MLX4_CQ_TO_EQ_VECTOR(cq_vec)].irq;
1556 priv->eq_table.eq[eq_vec].ref_count--;