|
@@ -590,49 +590,6 @@ int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
-int mlx4_check_ext_port_caps(struct mlx4_dev *dev, u8 port)
|
|
|
-{
|
|
|
- struct mlx4_cmd_mailbox *inmailbox, *outmailbox;
|
|
|
- u8 *inbuf, *outbuf;
|
|
|
- int err, packet_error;
|
|
|
-
|
|
|
- inmailbox = mlx4_alloc_cmd_mailbox(dev);
|
|
|
- if (IS_ERR(inmailbox))
|
|
|
- return PTR_ERR(inmailbox);
|
|
|
-
|
|
|
- outmailbox = mlx4_alloc_cmd_mailbox(dev);
|
|
|
- if (IS_ERR(outmailbox)) {
|
|
|
- mlx4_free_cmd_mailbox(dev, inmailbox);
|
|
|
- return PTR_ERR(outmailbox);
|
|
|
- }
|
|
|
-
|
|
|
- inbuf = inmailbox->buf;
|
|
|
- outbuf = outmailbox->buf;
|
|
|
- memset(inbuf, 0, 256);
|
|
|
- memset(outbuf, 0, 256);
|
|
|
- inbuf[0] = 1;
|
|
|
- inbuf[1] = 1;
|
|
|
- inbuf[2] = 1;
|
|
|
- inbuf[3] = 1;
|
|
|
-
|
|
|
- *(__be16 *) (&inbuf[16]) = MLX4_ATTR_EXTENDED_PORT_INFO;
|
|
|
- *(__be32 *) (&inbuf[20]) = cpu_to_be32(port);
|
|
|
-
|
|
|
- err = mlx4_cmd_box(dev, inmailbox->dma, outmailbox->dma, port, 3,
|
|
|
- MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C,
|
|
|
- MLX4_CMD_NATIVE);
|
|
|
-
|
|
|
- packet_error = be16_to_cpu(*(__be16 *) (outbuf + 4));
|
|
|
-
|
|
|
- dev->caps.ext_port_cap[port] = (!err && !packet_error) ?
|
|
|
- MLX_EXT_PORT_CAP_FLAG_EXTENDED_PORT_INFO
|
|
|
- : 0;
|
|
|
-
|
|
|
- mlx4_free_cmd_mailbox(dev, inmailbox);
|
|
|
- mlx4_free_cmd_mailbox(dev, outmailbox);
|
|
|
- return err;
|
|
|
-}
|
|
|
-
|
|
|
static int mlx4_common_set_port(struct mlx4_dev *dev, int slave, u32 in_mod,
|
|
|
u8 op_mod, struct mlx4_cmd_mailbox *inbox)
|
|
|
{
|