Deleted Added
full compact
eq.c (219820) eq.c (250460)
1/*
2 * Copyright (c) 2005, 2006, 2007, 2008 Mellanox Technologies. All rights reserved.
3 * Copyright (c) 2005, 2006, 2007 Cisco Systems, Inc. All rights reserved.
4 *
5 * This software is available to you under a choice of one of two
6 * licenses. You may choose to be licensed under the terms of the GNU
7 * General Public License (GPL) Version 2, available from the file
8 * COPYING in the main directory of this source tree, or the

--- 691 unchanged lines hidden (view full) ---

700 /* A loop over all completion vectors, for each vector we will check
701 * whether it works by mapping command completions to that vector
702 * and performing a NOP command
703 */
704 for(i = 0; !err && (i < dev->caps.num_comp_vectors); ++i) {
705 /* Temporary use polling for command completions */
706 mlx4_cmd_use_polling(dev);
707
1/*
2 * Copyright (c) 2005, 2006, 2007, 2008 Mellanox Technologies. All rights reserved.
3 * Copyright (c) 2005, 2006, 2007 Cisco Systems, Inc. All rights reserved.
4 *
5 * This software is available to you under a choice of one of two
6 * licenses. You may choose to be licensed under the terms of the GNU
7 * General Public License (GPL) Version 2, available from the file
8 * COPYING in the main directory of this source tree, or the

--- 691 unchanged lines hidden (view full) ---

700 /* A loop over all completion vectors, for each vector we will check
701 * whether it works by mapping command completions to that vector
702 * and performing a NOP command
703 */
704 for(i = 0; !err && (i < dev->caps.num_comp_vectors); ++i) {
705 /* Temporary use polling for command completions */
706 mlx4_cmd_use_polling(dev);
707
708 /* Map the new eq to handle all asyncronous events */
708 /* Map the new eq to handle all asynchronous events */
709 err = mlx4_MAP_EQ(dev, MLX4_ASYNC_EVENT_MASK, 0,
710 priv->eq_table.eq[i].eqn);
711 if (err) {
712 mlx4_warn(dev, "Failed mapping eq for interrupt test\n");
713 mlx4_cmd_use_events(dev);
714 break;
715 }
716
717 /* Go back to using events */
718 mlx4_cmd_use_events(dev);
719 err = mlx4_NOP(dev);
720 }
721
722 /* Return to default */
723 mlx4_MAP_EQ(dev, MLX4_ASYNC_EVENT_MASK, 0,
724 priv->eq_table.eq[dev->caps.num_comp_vectors].eqn);
725 return err;
726}
727EXPORT_SYMBOL(mlx4_test_interrupts);
709 err = mlx4_MAP_EQ(dev, MLX4_ASYNC_EVENT_MASK, 0,
710 priv->eq_table.eq[i].eqn);
711 if (err) {
712 mlx4_warn(dev, "Failed mapping eq for interrupt test\n");
713 mlx4_cmd_use_events(dev);
714 break;
715 }
716
717 /* Go back to using events */
718 mlx4_cmd_use_events(dev);
719 err = mlx4_NOP(dev);
720 }
721
722 /* Return to default */
723 mlx4_MAP_EQ(dev, MLX4_ASYNC_EVENT_MASK, 0,
724 priv->eq_table.eq[dev->caps.num_comp_vectors].eqn);
725 return err;
726}
727EXPORT_SYMBOL(mlx4_test_interrupts);