Lines Matching refs:adapter
157 struct ehea_adapter *adapter; in ehea_update_firmware_handles() local
167 list_for_each_entry(adapter, &adapter_list, list) { in ehea_update_firmware_handles()
171 struct ehea_port *port = adapter->port[k]; in ehea_update_firmware_handles()
192 list_for_each_entry(adapter, &adapter_list, list) { in ehea_update_firmware_handles()
197 struct ehea_port *port = adapter->port[k]; in ehea_update_firmware_handles()
206 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
208 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
210 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
212 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
214 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
216 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
219 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
224 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
225 arr[i++].fwh = adapter->neq->fw_handle; in ehea_update_firmware_handles()
227 if (adapter->mr.handle) { in ehea_update_firmware_handles()
228 arr[i].adh = adapter->handle; in ehea_update_firmware_handles()
229 arr[i++].fwh = adapter->mr.handle; in ehea_update_firmware_handles()
246 struct ehea_adapter *adapter; in ehea_update_bcmc_registrations() local
255 list_for_each_entry(adapter, &adapter_list, list) in ehea_update_bcmc_registrations()
257 struct ehea_port *port = adapter->port[k]; in ehea_update_bcmc_registrations()
275 list_for_each_entry(adapter, &adapter_list, list) { in ehea_update_bcmc_registrations()
277 struct ehea_port *port = adapter->port[k]; in ehea_update_bcmc_registrations()
285 arr[i].adh = adapter->handle; in ehea_update_bcmc_registrations()
291 arr[i].adh = adapter->handle; in ehea_update_bcmc_registrations()
303 arr[i].adh = adapter->handle; in ehea_update_bcmc_registrations()
311 arr[i].adh = adapter->handle; in ehea_update_bcmc_registrations()
373 hret = ehea_h_query_ehea_port(port->adapter->handle, in ehea_update_stats()
963 resource_type = ehea_error_data(port->adapter, qp->fw_handle, in ehea_qp_aff_irq_handler()
984 static struct ehea_port *ehea_get_port(struct ehea_adapter *adapter, in ehea_get_port() argument
990 if (adapter->port[i]) in ehea_get_port()
991 if (adapter->port[i]->logical_port_id == logical_port) in ehea_get_port()
992 return adapter->port[i]; in ehea_get_port()
1010 hret = ehea_h_query_ehea_port(port->adapter->handle, in ehea_sense_port_attr()
1099 hret = ehea_h_modify_ehea_port(port->adapter->handle, in ehea_set_portspeed()
1105 hret = ehea_h_query_ehea_port(port->adapter->handle, in ehea_set_portspeed()
1161 static void ehea_parse_eqe(struct ehea_adapter *adapter, u64 eqe) in ehea_parse_eqe() argument
1171 port = ehea_get_port(adapter, portnum); in ehea_parse_eqe()
1245 struct ehea_adapter *adapter = (struct ehea_adapter *)data; in ehea_neq_tasklet() local
1249 eqe = ehea_poll_eq(adapter->neq); in ehea_neq_tasklet()
1254 ehea_parse_eqe(adapter, eqe->entry); in ehea_neq_tasklet()
1255 eqe = ehea_poll_eq(adapter->neq); in ehea_neq_tasklet()
1263 ehea_h_reset_events(adapter->handle, in ehea_neq_tasklet()
1264 adapter->neq->fw_handle, event_mask); in ehea_neq_tasklet()
1269 struct ehea_adapter *adapter = param; in ehea_interrupt_neq() local
1270 tasklet_hi_schedule(&adapter->neq_tasklet); in ehea_interrupt_neq()
1403 hret = ehea_h_modify_ehea_port(port->adapter->handle, in ehea_configure_port()
1421 struct ehea_adapter *adapter = pr->port->adapter; in ehea_gen_smrs() local
1423 ret = ehea_gen_smr(adapter, &adapter->mr, &pr->send_mr); in ehea_gen_smrs()
1427 ret = ehea_gen_smr(adapter, &adapter->mr, &pr->recv_mr); in ehea_gen_smrs()
1467 struct ehea_adapter *adapter = port->adapter; in ehea_init_port_res() local
1487 pr->eq = ehea_create_eq(adapter, eq_type, EHEA_MAX_ENTRIES_EQ, 0); in ehea_init_port_res()
1493 pr->recv_cq = ehea_create_cq(adapter, pr_cfg->max_entries_rcq, in ehea_init_port_res()
1501 pr->send_cq = ehea_create_cq(adapter, pr_cfg->max_entries_scq, in ehea_init_port_res()
1540 pr->qp = ehea_create_qp(adapter, adapter->pd, init_attr); in ehea_init_port_res()
1719 hret = ehea_h_reg_dereg_bcmc(port->adapter->handle, in ehea_broadcast_reg_helper()
1731 hret = ehea_h_reg_dereg_bcmc(port->adapter->handle, in ehea_broadcast_reg_helper()
1767 hret = ehea_h_modify_ehea_port(port->adapter->handle, in ehea_set_mac_addr()
1831 hret = ehea_h_modify_ehea_port(port->adapter->handle, in ehea_promiscuous()
1854 hret = ehea_h_reg_dereg_bcmc(port->adapter->handle, in ehea_multicast_reg_helper()
1864 hret = ehea_h_reg_dereg_bcmc(port->adapter->handle, in ehea_multicast_reg_helper()
1971 if (netdev_mc_count(dev) > port->adapter->max_mc_mac) { in ehea_set_multicast_list()
1973 port->adapter->max_mc_mac); in ehea_set_multicast_list()
2128 struct ehea_adapter *adapter = port->adapter; in ehea_vlan_rx_add_vid() local
2141 hret = ehea_h_query_ehea_port(adapter->handle, port->logical_port_id, in ehea_vlan_rx_add_vid()
2152 hret = ehea_h_modify_ehea_port(adapter->handle, port->logical_port_id, in ehea_vlan_rx_add_vid()
2166 struct ehea_adapter *adapter = port->adapter; in ehea_vlan_rx_kill_vid() local
2179 hret = ehea_h_query_ehea_port(adapter->handle, port->logical_port_id, in ehea_vlan_rx_kill_vid()
2190 hret = ehea_h_modify_ehea_port(adapter->handle, port->logical_port_id, in ehea_vlan_rx_kill_vid()
2201 static int ehea_activate_qp(struct ehea_adapter *adapter, struct ehea_qp *qp) in ehea_activate_qp() argument
2215 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2223 hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2231 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2239 hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2247 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2255 hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2263 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_activate_qp()
2282 port->qp_eq = ehea_create_eq(port->adapter, eq_type, in ehea_port_res_setup()
2340 static void ehea_remove_adapter_mr(struct ehea_adapter *adapter) in ehea_remove_adapter_mr() argument
2342 if (adapter->active_ports) in ehea_remove_adapter_mr()
2345 ehea_rem_mr(&adapter->mr); in ehea_remove_adapter_mr()
2348 static int ehea_add_adapter_mr(struct ehea_adapter *adapter) in ehea_add_adapter_mr() argument
2350 if (adapter->active_ports) in ehea_add_adapter_mr()
2353 return ehea_reg_kernel_mr(adapter, &adapter->mr); in ehea_add_adapter_mr()
2384 ret = ehea_activate_qp(port->adapter, port->port_res[i].qp); in ehea_up()
2546 struct ehea_adapter *adapter = port->adapter; in ehea_stop_qps() local
2569 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_stop_qps()
2580 hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_stop_qps()
2589 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_stop_qps()
2648 struct ehea_adapter *adapter = port->adapter; in ehea_restart_qps() local
2676 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_restart_qps()
2687 hret = ehea_h_modify_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_restart_qps()
2696 hret = ehea_h_query_ehea_qp(adapter->handle, 0, qp->fw_handle, in ehea_restart_qps()
2750 struct ehea_adapter *adapter; in ehea_rereg_mrs() local
2754 list_for_each_entry(adapter, &adapter_list, list) in ehea_rereg_mrs()
2755 if (adapter->active_ports) { in ehea_rereg_mrs()
2758 struct ehea_port *port = adapter->port[i]; in ehea_rereg_mrs()
2782 ret = ehea_rem_mr(&adapter->mr); in ehea_rereg_mrs()
2791 list_for_each_entry(adapter, &adapter_list, list) in ehea_rereg_mrs()
2792 if (adapter->active_ports) { in ehea_rereg_mrs()
2794 ret = ehea_reg_kernel_mr(adapter, &adapter->mr); in ehea_rereg_mrs()
2802 struct ehea_port *port = adapter->port[i]; in ehea_rereg_mrs()
2836 static int ehea_sense_adapter_attr(struct ehea_adapter *adapter) in ehea_sense_adapter_attr() argument
2848 hret = ehea_h_query_ehea(adapter->handle, cb); in ehea_sense_adapter_attr()
2855 adapter->max_mc_mac = cb->max_mc_mac - 1; in ehea_sense_adapter_attr()
2879 hret = ehea_h_query_ehea_port(port->adapter->handle, in ehea_get_jumboframe_status()
2888 hret = ehea_h_modify_ehea_port(port->adapter-> in ehea_get_jumboframe_status()
2929 port->ofdev.dev.parent = &port->adapter->ofdev->dev; in ehea_register_port()
2978 static struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter, in ehea_setup_single_port() argument
3002 port->adapter = adapter; in ehea_setup_single_port()
3065 adapter->active_ports++; in ehea_setup_single_port()
3086 struct ehea_adapter *adapter = port->adapter; in ehea_shutdown_single_port() local
3094 adapter->active_ports--; in ehea_shutdown_single_port()
3097 static int ehea_setup_ports(struct ehea_adapter *adapter) in ehea_setup_ports() argument
3105 lhea_dn = adapter->ofdev->dev.of_node; in ehea_setup_ports()
3116 if (ehea_add_adapter_mr(adapter)) { in ehea_setup_ports()
3122 adapter->port[i] = ehea_setup_single_port(adapter, in ehea_setup_ports()
3125 if (adapter->port[i]) in ehea_setup_ports()
3126 netdev_info(adapter->port[i]->netdev, in ehea_setup_ports()
3129 ehea_remove_adapter_mr(adapter); in ehea_setup_ports()
3136 static struct device_node *ehea_get_eth_dn(struct ehea_adapter *adapter, in ehea_get_eth_dn() argument
3143 lhea_dn = adapter->ofdev->dev.of_node; in ehea_get_eth_dn()
3160 struct ehea_adapter *adapter = dev_get_drvdata(dev); in ehea_probe_port() local
3169 port = ehea_get_port(adapter, logical_port_id); in ehea_probe_port()
3177 eth_dn = ehea_get_eth_dn(adapter, logical_port_id); in ehea_probe_port()
3184 if (ehea_add_adapter_mr(adapter)) { in ehea_probe_port()
3189 port = ehea_setup_single_port(adapter, logical_port_id, eth_dn); in ehea_probe_port()
3195 if (!adapter->port[i]) { in ehea_probe_port()
3196 adapter->port[i] = port; in ehea_probe_port()
3203 ehea_remove_adapter_mr(adapter); in ehea_probe_port()
3214 struct ehea_adapter *adapter = dev_get_drvdata(dev); in ehea_remove_port() local
3221 port = ehea_get_port(adapter, logical_port_id); in ehea_remove_port()
3230 if (adapter->port[i] == port) { in ehea_remove_port()
3231 adapter->port[i] = NULL; in ehea_remove_port()
3240 ehea_remove_adapter_mr(adapter); in ehea_remove_port()
3402 struct ehea_adapter *adapter; in ehea_probe_adapter() local
3416 adapter = devm_kzalloc(&dev->dev, sizeof(*adapter), GFP_KERNEL); in ehea_probe_adapter()
3417 if (!adapter) { in ehea_probe_adapter()
3423 list_add(&adapter->list, &adapter_list); in ehea_probe_adapter()
3425 adapter->ofdev = dev; in ehea_probe_adapter()
3430 adapter->handle = *adapter_handle; in ehea_probe_adapter()
3432 if (!adapter->handle) { in ehea_probe_adapter()
3439 adapter->pd = EHEA_PD_ID; in ehea_probe_adapter()
3441 platform_set_drvdata(dev, adapter); in ehea_probe_adapter()
3446 ret = ehea_sense_adapter_attr(adapter); in ehea_probe_adapter()
3452 adapter->neq = ehea_create_eq(adapter, in ehea_probe_adapter()
3454 if (!adapter->neq) { in ehea_probe_adapter()
3460 tasklet_init(&adapter->neq_tasklet, ehea_neq_tasklet, in ehea_probe_adapter()
3461 (unsigned long)adapter); in ehea_probe_adapter()
3467 ret = ehea_setup_ports(adapter); in ehea_probe_adapter()
3473 ret = ibmebus_request_irq(adapter->neq->attr.ist1, in ehea_probe_adapter()
3475 "ehea_neq", adapter); in ehea_probe_adapter()
3482 tasklet_hi_schedule(&adapter->neq_tasklet); in ehea_probe_adapter()
3489 if (adapter->port[i]) { in ehea_probe_adapter()
3490 ehea_shutdown_single_port(adapter->port[i]); in ehea_probe_adapter()
3491 adapter->port[i] = NULL; in ehea_probe_adapter()
3498 ehea_destroy_eq(adapter->neq); in ehea_probe_adapter()
3501 list_del(&adapter->list); in ehea_probe_adapter()
3511 struct ehea_adapter *adapter = platform_get_drvdata(dev); in ehea_remove() local
3515 if (adapter->port[i]) { in ehea_remove()
3516 ehea_shutdown_single_port(adapter->port[i]); in ehea_remove()
3517 adapter->port[i] = NULL; in ehea_remove()
3522 ibmebus_free_irq(adapter->neq->attr.ist1, adapter); in ehea_remove()
3523 tasklet_kill(&adapter->neq_tasklet); in ehea_remove()
3525 ehea_destroy_eq(adapter->neq); in ehea_remove()
3526 ehea_remove_adapter_mr(adapter); in ehea_remove()
3527 list_del(&adapter->list); in ehea_remove()