/illumos-gate/usr/src/uts/common/io/mlxcx/ |
H A D | mlxcx.c | 474 mlxcx_load_prop_defaults(mlxcx_t *mlxp) in mlxcx_load_prop_defaults() argument 476 mlxcx_drv_props_t *p = &mlxp->mlx_props; in mlxcx_load_prop_defaults() 477 mlxcx_port_t *port = &mlxp->mlx_ports[0]; in mlxcx_load_prop_defaults() 479 VERIFY((mlxp->mlx_attach & MLXCX_ATTACH_PORTS) != 0); in mlxcx_load_prop_defaults() 480 VERIFY((mlxp->mlx_attach & (MLXCX_ATTACH_CQS | MLXCX_ATTACH_WQS)) == 0); in mlxcx_load_prop_defaults() 503 mlxcx_warn(mlxp, "Encountered a port with a speed we don't " in mlxcx_load_prop_defaults() 516 mlxcx_load_model_props(mlxcx_t *mlxp) in mlxcx_load_model_props() argument 518 mlxcx_drv_props_t *p = &mlxp->mlx_props; in mlxcx_load_model_props() 520 mlxcx_load_prop_defaults(mlxp); in mlxcx_load_model_props() 522 p->mldp_cq_size_shift = ddi_getprop(DDI_DEV_T_ANY, mlxp->mlx_dip, in mlxcx_load_model_props() [all …]
|
H A D | mlxcx_intr.c | 45 mlxcx_intr_disable(mlxcx_t *mlxp) in mlxcx_intr_disable() argument 49 mlxcx_cmd_eq_disable(mlxp); in mlxcx_intr_disable() 51 for (i = 0; i < mlxp->mlx_intr_count; ++i) { in mlxcx_intr_disable() 52 mlxcx_event_queue_t *mleq = &mlxp->mlx_eqs[i]; in mlxcx_intr_disable() 61 (void) ddi_intr_disable(mlxp->mlx_intr_handles[i]); in mlxcx_intr_disable() 74 mlxcx_intr_teardown(mlxcx_t *mlxp) in mlxcx_intr_teardown() argument 79 for (i = 0; i < mlxp->mlx_intr_count; ++i) { in mlxcx_intr_teardown() 80 mlxcx_event_queue_t *mleq = &mlxp->mlx_eqs[i]; in mlxcx_intr_teardown() 86 if (i >= mlxp->mlx_intr_cq0) { in mlxcx_intr_teardown() 91 (void) ddi_intr_remove_handler(mlxp->mlx_intr_handles[i]); in mlxcx_intr_teardown() [all …]
|
H A D | mlxcx_ring.c | 40 mlxcx_wq_alloc_dma(mlxcx_t *mlxp, mlxcx_work_queue_t *mlwq) in mlxcx_wq_alloc_dma() argument 52 mlwq->mlwq_entshift = mlxp->mlx_props.mldp_sq_size_shift; in mlxcx_wq_alloc_dma() 57 mlwq->mlwq_entshift = mlxp->mlx_props.mldp_rq_size_shift; in mlxcx_wq_alloc_dma() 67 mlxcx_dma_acc_attr(mlxp, &acc); in mlxcx_wq_alloc_dma() 68 mlxcx_dma_queue_attr(mlxp, &attr); in mlxcx_wq_alloc_dma() 70 ret = mlxcx_dma_alloc(mlxp, &mlwq->mlwq_dma, &attr, &acc, in mlxcx_wq_alloc_dma() 73 mlxcx_warn(mlxp, "failed to allocate WQ memory"); in mlxcx_wq_alloc_dma() 83 mlxcx_dma_acc_attr(mlxp, &acc); in mlxcx_wq_alloc_dma() 84 mlxcx_dma_qdbell_attr(mlxp, &attr); in mlxcx_wq_alloc_dma() 86 ret = mlxcx_dma_alloc(mlxp, &mlwq->mlwq_doorbell_dma, &attr, &acc, in mlxcx_wq_alloc_dma() [all …]
|
H A D | mlxcx_cmd.c | 515 mlxcx_cmd_queue_fini(mlxcx_t *mlxp) in mlxcx_cmd_queue_fini() argument 517 mlxcx_cmd_queue_t *cmd = &mlxp->mlx_cmd; in mlxcx_cmd_queue_fini() 536 mlxcx_cmd_queue_init(mlxcx_t *mlxp) in mlxcx_cmd_queue_init() argument 539 mlxcx_cmd_queue_t *cmd = &mlxp->mlx_cmd; in mlxcx_cmd_queue_init() 547 tmp = mlxcx_get32(mlxp, MLXCX_ISS_FIRMWARE); in mlxcx_cmd_queue_init() 548 mlxp->mlx_fw_maj = MLXCX_ISS_FW_MAJOR(tmp); in mlxcx_cmd_queue_init() 549 mlxp->mlx_fw_min = MLXCX_ISS_FW_MINOR(tmp); in mlxcx_cmd_queue_init() 551 tmp = mlxcx_get32(mlxp, MLXCX_ISS_FW_CMD); in mlxcx_cmd_queue_init() 552 mlxp->mlx_fw_rev = MLXCX_ISS_FW_REV(tmp); in mlxcx_cmd_queue_init() 553 mlxp->mlx_cmd_rev = MLXCX_ISS_CMD_REV(tmp); in mlxcx_cmd_queue_init() [all …]
|
H A D | mlxcx_sensor.c | 36 mlxcx_t *mlxp = sensor->mlts_mlx; in mlxcx_temperature_read() local 40 ok = mlxcx_cmd_access_register(mlxp, MLXCX_CMD_ACCESS_REGISTER_READ, in mlxcx_temperature_read() 67 mlxcx_teardown_sensors(mlxcx_t *mlxp) in mlxcx_teardown_sensors() argument 69 if (mlxp->mlx_temp_nsensors == 0) in mlxcx_teardown_sensors() 71 (void) ksensor_remove(mlxp->mlx_dip, KSENSOR_ALL_IDS); in mlxcx_teardown_sensors() 72 kmem_free(mlxp->mlx_temp_sensors, sizeof (mlxcx_temp_sensor_t) * in mlxcx_teardown_sensors() 73 mlxp->mlx_temp_nsensors); in mlxcx_teardown_sensors() 77 mlxcx_setup_sensors(mlxcx_t *mlxp) in mlxcx_setup_sensors() argument 82 mlxp->mlx_temp_nsensors = 0; in mlxcx_setup_sensors() 84 ok = mlxcx_cmd_access_register(mlxp, MLXCX_CMD_ACCESS_REGISTER_READ, in mlxcx_setup_sensors() [all …]
|
H A D | mlxcx_gld.c | 204 mlxcx_mac_stat_rfc_2863(mlxcx_t *mlxp, mlxcx_port_t *port, uint_t stat, in mlxcx_mac_stat_rfc_2863() argument 219 ok = mlxcx_cmd_access_register(mlxp, MLXCX_CMD_ACCESS_REGISTER_READ, in mlxcx_mac_stat_rfc_2863() 261 mlxcx_mac_stat_ieee_802_3(mlxcx_t *mlxp, mlxcx_port_t *port, uint_t stat, in mlxcx_mac_stat_ieee_802_3() argument 276 ok = mlxcx_cmd_access_register(mlxp, MLXCX_CMD_ACCESS_REGISTER_READ, in mlxcx_mac_stat_ieee_802_3() 308 mlxcx_t *mlxp = (mlxcx_t *)arg; in mlxcx_mac_stat() local 309 mlxcx_port_t *port = &mlxp->mlx_ports[0]; in mlxcx_mac_stat() 331 ret = mlxcx_mac_stat_rfc_2863(mlxp, port, stat, val); in mlxcx_mac_stat() 338 ret = mlxcx_mac_stat_ieee_802_3(mlxp, port, stat, val); in mlxcx_mac_stat() 355 mlxcx_t *mlxp = arg; in mlxcx_mac_led_set() local 356 mlxcx_port_t *port = &mlxp->mlx_ports[0]; in mlxcx_mac_led_set() [all …]
|
H A D | mlxcx_dma.c | 24 mlxcx_dma_acc_attr(mlxcx_t *mlxp, ddi_device_acc_attr_t *accp) in mlxcx_dma_acc_attr() argument 31 if (DDI_FM_DMA_ERR_CAP(mlxp->mlx_fm_caps)) { in mlxcx_dma_acc_attr() 39 mlxcx_dma_page_attr(mlxcx_t *mlxp, ddi_dma_attr_t *attrp) in mlxcx_dma_page_attr() argument 82 if (DDI_FM_DMA_ERR_CAP(mlxp->mlx_fm_caps)) { in mlxcx_dma_page_attr() 96 mlxcx_dma_queue_attr(mlxcx_t *mlxp, ddi_dma_attr_t *attrp) in mlxcx_dma_queue_attr() argument 127 if (DDI_FM_DMA_ERR_CAP(mlxp->mlx_fm_caps)) { in mlxcx_dma_queue_attr() 138 mlxcx_dma_buf_attr(mlxcx_t *mlxp, ddi_dma_attr_t *attrp) in mlxcx_dma_buf_attr() argument 175 if (DDI_FM_DMA_ERR_CAP(mlxp->mlx_fm_caps)) { in mlxcx_dma_buf_attr() 186 mlxcx_dma_qdbell_attr(mlxcx_t *mlxp, ddi_dma_attr_t *attrp) in mlxcx_dma_qdbell_attr() argument 212 if (DDI_FM_DMA_ERR_CAP(mlxp->mlx_fm_caps)) { in mlxcx_dma_qdbell_attr() [all …]
|