Lines Matching refs:port

215 int mlx4_gen_pkey_eqe(struct mlx4_dev *dev, int slave, u8 port)
229 eqe.event.port_mgmt_change.port = port;
235 int mlx4_gen_guid_change_eqe(struct mlx4_dev *dev, int slave, u8 port)
246 eqe.event.port_mgmt_change.port = port;
252 int mlx4_gen_port_state_change_eqe(struct mlx4_dev *dev, int slave, u8 port,
264 eqe.event.port_change.port = cpu_to_be32(port << 28);
266 mlx4_dbg(dev, "%s: sending: %d to slave: %d on port: %d\n", __func__,
267 port_subtype_change, slave, port);
272 enum slave_port_state mlx4_get_slave_port_state(struct mlx4_dev *dev, int slave, u8 port)
278 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
279 port <= 0 || !test_bit(port - 1, actv_ports.ports)) {
280 pr_err("%s: Error: asking for slave:%d, port:%d\n",
281 __func__, slave, port);
284 return s_state[slave].port_state[port];
288 static int mlx4_set_slave_port_state(struct mlx4_dev *dev, int slave, u8 port,
295 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
296 port <= 0 || !test_bit(port - 1, actv_ports.ports)) {
297 pr_err("%s: Error: asking for slave:%d, port:%d\n",
298 __func__, slave, port);
301 s_state[slave].port_state[port] = state;
306 static void set_all_slave_state(struct mlx4_dev *dev, u8 port, int event)
311 port);
315 set_and_calc_slave_port_state(dev, i, port,
319 The function get as input the new event to that port,
320 and according to the prev state change the slave's port state.
328 u8 port, int event,
337 mlx4_get_slave_port_state(dev, slave, port);
341 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
342 port <= 0 || !test_bit(port - 1, actv_ports.ports)) {
343 pr_err("%s: Error: asking for slave:%d, port:%d\n",
344 __func__, slave, port);
354 mlx4_set_slave_port_state(dev, slave, port,
359 mlx4_set_slave_port_state(dev, slave, port,
362 mlx4_set_slave_port_state(dev, slave, port,
369 mlx4_set_slave_port_state(dev, slave, port,
374 mlx4_set_slave_port_state(dev, slave, port,
380 pr_err("%s: BUG!!! UNKNOWN state: slave:%d, port:%d\n",
381 __func__, slave, port);
384 ret = mlx4_get_slave_port_state(dev, slave, port);
393 int mlx4_gen_slaves_port_mgt_ev(struct mlx4_dev *dev, u8 port, int attr)
401 eqe.event.port_mgmt_change.port = port;
456 int port;
555 port = be32_to_cpu(eqe->event.port_change.port) >> 28;
556 slaves_port = mlx4_phys_to_slaves_pport(dev, port);
559 port);
560 mlx4_priv(dev)->sense.do_sense_port[port] = 1;
566 if (dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH) {
569 mlx4_dbg(dev, "%s: Sending MLX4_PORT_CHANGE_SUBTYPE_DOWN to slave: %d, port:%d\n",
570 __func__, i, port);
571 s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state;
573 eqe->event.port_change.port =
575 (be32_to_cpu(eqe->event.port_change.port) & 0xFFFFFFF)
576 | (mlx4_phys_to_slave_port(dev, i, port) << 28));
579 } else { /* IB port */
580 set_and_calc_slave_port_state(dev, i, port,
592 mlx4_dispatch_event(dev, MLX4_DEV_EVENT_PORT_UP, port);
594 mlx4_priv(dev)->sense.do_sense_port[port] = 0;
598 if (dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH)
604 s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state;
606 eqe->event.port_change.port =
608 (be32_to_cpu(eqe->event.port_change.port) & 0xFFFFFFF)
609 | (mlx4_phys_to_slave_port(dev, i, port) << 28));
613 else /* IB port */
614 /* port-up event will be sent to a slave when the
617 set_all_slave_state(dev, port, MLX4_DEV_EVENT_PORT_UP);