Lines Matching refs:efx

52 static int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating,
54 static bool efx_mcdi_poll_once(struct efx_nic *efx);
55 static void efx_mcdi_abandon(struct efx_nic *efx);
57 int efx_mcdi_init(struct efx_nic *efx) in efx_mcdi_init() argument
63 efx->mcdi = kzalloc(sizeof(*efx->mcdi), GFP_KERNEL); in efx_mcdi_init()
64 if (!efx->mcdi) in efx_mcdi_init()
67 mcdi = efx_mcdi(efx); in efx_mcdi_init()
68 mcdi->efx = efx; in efx_mcdi_init()
78 (void) efx_mcdi_poll_reboot(efx); in efx_mcdi_init()
82 rc = efx_mcdi_handle_assertion(efx); in efx_mcdi_init()
89 rc = efx_mcdi_drv_attach(efx, true, &already_attached); in efx_mcdi_init()
91 netif_err(efx, probe, efx->net_dev, in efx_mcdi_init()
97 netif_err(efx, probe, efx->net_dev, in efx_mcdi_init()
100 if (efx->mcdi->fn_flags & in efx_mcdi_init()
102 efx->primary = efx; in efx_mcdi_init()
107 void efx_mcdi_fini(struct efx_nic *efx) in efx_mcdi_fini() argument
109 if (!efx->mcdi) in efx_mcdi_fini()
112 BUG_ON(efx->mcdi->iface.state != MCDI_STATE_QUIESCENT); in efx_mcdi_fini()
115 efx_mcdi_drv_attach(efx, false, NULL); in efx_mcdi_fini()
117 kfree(efx->mcdi); in efx_mcdi_fini()
120 static void efx_mcdi_send_request(struct efx_nic *efx, unsigned cmd, in efx_mcdi_send_request() argument
123 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_send_request()
140 if (efx->type->mcdi_max_ver == 1) { in efx_mcdi_send_request()
168 efx->type->mcdi_request(efx, hdr, hdr_len, inbuf, inlen); in efx_mcdi_send_request()
205 static void efx_mcdi_read_response_header(struct efx_nic *efx) in efx_mcdi_read_response_header() argument
207 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_read_response_header()
211 efx->type->mcdi_read_response(efx, &hdr, 0, 4); in efx_mcdi_read_response_header()
220 efx->type->mcdi_read_response(efx, &hdr, 4, 4); in efx_mcdi_read_response_header()
227 netif_err(efx, hw, efx->net_dev, "MC rebooted\n"); in efx_mcdi_read_response_header()
230 netif_err(efx, hw, efx->net_dev, in efx_mcdi_read_response_header()
235 efx->type->mcdi_read_response(efx, &hdr, mcdi->resp_hdr_len, 4); in efx_mcdi_read_response_header()
243 static bool efx_mcdi_poll_once(struct efx_nic *efx) in efx_mcdi_poll_once() argument
245 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_poll_once()
248 if (!efx->type->mcdi_poll_response(efx)) in efx_mcdi_poll_once()
252 efx_mcdi_read_response_header(efx); in efx_mcdi_poll_once()
258 static int efx_mcdi_poll(struct efx_nic *efx) in efx_mcdi_poll() argument
260 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_poll()
266 rc = efx_mcdi_poll_reboot(efx); in efx_mcdi_poll()
293 if (efx_mcdi_poll_once(efx)) in efx_mcdi_poll()
307 int efx_mcdi_poll_reboot(struct efx_nic *efx) in efx_mcdi_poll_reboot() argument
309 if (!efx->mcdi) in efx_mcdi_poll_reboot()
312 return efx->type->mcdi_poll_reboot(efx); in efx_mcdi_poll_reboot()
333 static int efx_mcdi_await_completion(struct efx_nic *efx) in efx_mcdi_await_completion() argument
335 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_await_completion()
350 return efx_mcdi_poll(efx); in efx_mcdi_await_completion()
374 struct efx_nic *efx = mcdi->efx; in efx_mcdi_release() local
382 efx_mcdi_send_request(efx, async->cmd, in efx_mcdi_release()
405 struct efx_nic *efx = mcdi->efx; in efx_mcdi_complete_async() local
448 efx->type->mcdi_read_response(efx, outbuf, hdr_len, in efx_mcdi_complete_async()
452 efx->type->mcdi_read_response(efx, errbuf, hdr_len, in efx_mcdi_complete_async()
454 efx_mcdi_display_error(efx, async->cmd, async->inlen, errbuf, in efx_mcdi_complete_async()
457 async->complete(efx, async->cookie, rc, outbuf, data_len); in efx_mcdi_complete_async()
465 static void efx_mcdi_ev_cpl(struct efx_nic *efx, unsigned int seqno, in efx_mcdi_ev_cpl() argument
468 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_ev_cpl()
478 netif_err(efx, hw, efx->net_dev, in efx_mcdi_ev_cpl()
482 if (efx->type->mcdi_max_ver >= 2) { in efx_mcdi_ev_cpl()
484 efx_mcdi_read_response_header(efx); in efx_mcdi_ev_cpl()
517 efx_mcdi_check_supported(struct efx_nic *efx, unsigned int cmd, size_t inlen) in efx_mcdi_check_supported() argument
519 if (efx->type->mcdi_max_ver < 0 || in efx_mcdi_check_supported()
520 (efx->type->mcdi_max_ver < 2 && in efx_mcdi_check_supported()
525 (efx->type->mcdi_max_ver < 2 && in efx_mcdi_check_supported()
532 static int _efx_mcdi_rpc_finish(struct efx_nic *efx, unsigned cmd, size_t inlen, in _efx_mcdi_rpc_finish() argument
536 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in _efx_mcdi_rpc_finish()
541 rc = efx_mcdi_poll(efx); in _efx_mcdi_rpc_finish()
543 rc = efx_mcdi_await_completion(efx); in _efx_mcdi_rpc_finish()
546 netif_err(efx, hw, efx->net_dev, in _efx_mcdi_rpc_finish()
550 if (mcdi->mode == MCDI_MODE_EVENTS && efx_mcdi_poll_once(efx)) { in _efx_mcdi_rpc_finish()
551 netif_err(efx, hw, efx->net_dev, in _efx_mcdi_rpc_finish()
556 efx_mcdi_abandon(efx); in _efx_mcdi_rpc_finish()
587 efx->type->mcdi_read_response(efx, outbuf, hdr_len, in _efx_mcdi_rpc_finish()
592 efx->type->mcdi_read_response(efx, errbuf, hdr_len, err_len); in _efx_mcdi_rpc_finish()
597 netif_err(efx, hw, efx->net_dev, "MC fatal error %d\n", in _efx_mcdi_rpc_finish()
599 efx_schedule_reset(efx, RESET_TYPE_MC_FAILURE); in _efx_mcdi_rpc_finish()
601 efx_mcdi_display_error(efx, cmd, inlen, errbuf, err_len, in _efx_mcdi_rpc_finish()
607 efx_mcdi_poll_reboot(efx); in _efx_mcdi_rpc_finish()
616 static int _efx_mcdi_rpc(struct efx_nic *efx, unsigned cmd, in _efx_mcdi_rpc() argument
623 rc = efx_mcdi_rpc_start(efx, cmd, inbuf, inlen); in _efx_mcdi_rpc()
629 return _efx_mcdi_rpc_finish(efx, cmd, inlen, outbuf, outlen, in _efx_mcdi_rpc()
633 int efx_mcdi_rpc(struct efx_nic *efx, unsigned cmd, in efx_mcdi_rpc() argument
638 return _efx_mcdi_rpc(efx, cmd, inbuf, inlen, outbuf, outlen, in efx_mcdi_rpc()
650 int efx_mcdi_rpc_quiet(struct efx_nic *efx, unsigned cmd, in efx_mcdi_rpc_quiet() argument
655 return _efx_mcdi_rpc(efx, cmd, inbuf, inlen, outbuf, outlen, in efx_mcdi_rpc_quiet()
659 int efx_mcdi_rpc_start(struct efx_nic *efx, unsigned cmd, in efx_mcdi_rpc_start() argument
662 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_rpc_start()
665 rc = efx_mcdi_check_supported(efx, cmd, inlen); in efx_mcdi_rpc_start()
669 if (efx->mc_bist_for_other_fn) in efx_mcdi_rpc_start()
676 efx_mcdi_send_request(efx, cmd, inbuf, inlen); in efx_mcdi_rpc_start()
680 static int _efx_mcdi_rpc_async(struct efx_nic *efx, unsigned int cmd, in _efx_mcdi_rpc_async() argument
686 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in _efx_mcdi_rpc_async()
690 rc = efx_mcdi_check_supported(efx, cmd, inlen); in _efx_mcdi_rpc_async()
694 if (efx->mc_bist_for_other_fn) in _efx_mcdi_rpc_async()
720 efx_mcdi_send_request(efx, cmd, inbuf, inlen); in _efx_mcdi_rpc_async()
755 efx_mcdi_rpc_async(struct efx_nic *efx, unsigned int cmd, in efx_mcdi_rpc_async() argument
759 return _efx_mcdi_rpc_async(efx, cmd, inbuf, inlen, outlen, complete, in efx_mcdi_rpc_async()
763 int efx_mcdi_rpc_async_quiet(struct efx_nic *efx, unsigned int cmd, in efx_mcdi_rpc_async_quiet() argument
768 return _efx_mcdi_rpc_async(efx, cmd, inbuf, inlen, outlen, complete, in efx_mcdi_rpc_async_quiet()
772 int efx_mcdi_rpc_finish(struct efx_nic *efx, unsigned cmd, size_t inlen, in efx_mcdi_rpc_finish() argument
776 return _efx_mcdi_rpc_finish(efx, cmd, inlen, outbuf, outlen, in efx_mcdi_rpc_finish()
780 int efx_mcdi_rpc_finish_quiet(struct efx_nic *efx, unsigned cmd, size_t inlen, in efx_mcdi_rpc_finish_quiet() argument
784 return _efx_mcdi_rpc_finish(efx, cmd, inlen, outbuf, outlen, in efx_mcdi_rpc_finish_quiet()
788 void efx_mcdi_display_error(struct efx_nic *efx, unsigned cmd, in efx_mcdi_display_error() argument
798 netif_err(efx, hw, efx->net_dev, in efx_mcdi_display_error()
807 void efx_mcdi_mode_poll(struct efx_nic *efx) in efx_mcdi_mode_poll() argument
811 if (!efx->mcdi) in efx_mcdi_mode_poll()
814 mcdi = efx_mcdi(efx); in efx_mcdi_mode_poll()
838 void efx_mcdi_flush_async(struct efx_nic *efx) in efx_mcdi_flush_async() argument
843 if (!efx->mcdi) in efx_mcdi_flush_async()
846 mcdi = efx_mcdi(efx); in efx_mcdi_flush_async()
858 efx_mcdi_poll(efx); in efx_mcdi_flush_async()
868 async->complete(efx, async->cookie, -ENETDOWN, NULL, 0); in efx_mcdi_flush_async()
874 void efx_mcdi_mode_event(struct efx_nic *efx) in efx_mcdi_mode_event() argument
878 if (!efx->mcdi) in efx_mcdi_mode_event()
881 mcdi = efx_mcdi(efx); in efx_mcdi_mode_event()
901 static void efx_mcdi_ev_death(struct efx_nic *efx, int rc) in efx_mcdi_ev_death() argument
903 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_ev_death()
939 if (efx_mcdi_poll_reboot(efx)) in efx_mcdi_ev_death()
946 efx_schedule_reset(efx, RESET_TYPE_MC_FAILURE); in efx_mcdi_ev_death()
957 static void efx_mcdi_ev_bist(struct efx_nic *efx) in efx_mcdi_ev_bist() argument
959 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_ev_bist()
962 efx->mc_bist_for_other_fn = true; in efx_mcdi_ev_bist()
972 efx_schedule_reset(efx, RESET_TYPE_MC_BIST); in efx_mcdi_ev_bist()
979 static void efx_mcdi_abandon(struct efx_nic *efx) in efx_mcdi_abandon() argument
981 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_abandon()
985 netif_dbg(efx, hw, efx->net_dev, "MCDI is timing out; trying to recover\n"); in efx_mcdi_abandon()
986 efx_schedule_reset(efx, RESET_TYPE_MCDI_TIMEOUT); in efx_mcdi_abandon()
993 struct efx_nic *efx = channel->efx; in efx_mcdi_process_event() local
999 netif_err(efx, hw, efx->net_dev, in efx_mcdi_process_event()
1001 efx_mcdi_ev_death(efx, -EINTR); in efx_mcdi_process_event()
1005 netif_info(efx, wol, efx->net_dev, "MCDI PM event.\n"); in efx_mcdi_process_event()
1009 efx_mcdi_ev_cpl(efx, in efx_mcdi_process_event()
1016 efx_mcdi_process_link_change(efx, event); in efx_mcdi_process_event()
1019 efx_mcdi_sensor_event(efx, event); in efx_mcdi_process_event()
1022 netif_dbg(efx, hw, efx->net_dev, in efx_mcdi_process_event()
1027 netif_info(efx, hw, efx->net_dev, "MC Reboot\n"); in efx_mcdi_process_event()
1028 efx_mcdi_ev_death(efx, -EIO); in efx_mcdi_process_event()
1031 netif_info(efx, hw, efx->net_dev, "MC entered BIST mode\n"); in efx_mcdi_process_event()
1032 efx_mcdi_ev_bist(efx); in efx_mcdi_process_event()
1038 efx_siena_sriov_flr(efx, MCDI_EVENT_FIELD(*event, FLR_VF)); in efx_mcdi_process_event()
1043 efx_ptp_event(efx, event); in efx_mcdi_process_event()
1059 efx_ef10_handle_drain_event(efx); in efx_mcdi_process_event()
1063 netif_err(efx, hw, efx->net_dev, in efx_mcdi_process_event()
1067 efx_schedule_reset(efx, RESET_TYPE_DMA_ERROR); in efx_mcdi_process_event()
1070 netif_err(efx, hw, efx->net_dev, "Unknown MCDI event 0x%x\n", in efx_mcdi_process_event()
1082 void efx_mcdi_print_fwver(struct efx_nic *efx, char *buf, size_t len) in efx_mcdi_print_fwver() argument
1093 rc = efx_mcdi_rpc(efx, MC_CMD_GET_VERSION, NULL, 0, in efx_mcdi_print_fwver()
1110 if (efx_nic_rev(efx) >= EFX_REV_HUNT_A0) { in efx_mcdi_print_fwver()
1112 rc = efx_mcdi_rpc(efx, MC_CMD_GET_CAPABILITIES, NULL, 0, in efx_mcdi_print_fwver()
1136 netif_err(efx, probe, efx->net_dev, "%s: failed rc=%d\n", __func__, rc); in efx_mcdi_print_fwver()
1140 static int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating, in efx_mcdi_drv_attach() argument
1153 rc = efx_mcdi_rpc(efx, MC_CMD_DRV_ATTACH, inbuf, sizeof(inbuf), in efx_mcdi_drv_attach()
1164 efx->mcdi->fn_flags = in efx_mcdi_drv_attach()
1169 efx->mcdi->fn_flags = in efx_mcdi_drv_attach()
1172 (efx_port_num(efx) == 0) << in efx_mcdi_drv_attach()
1182 (efx->mcdi->fn_flags & in efx_mcdi_drv_attach()
1187 netif_err(efx, probe, efx->net_dev, in efx_mcdi_drv_attach()
1197 netif_err(efx, probe, efx->net_dev, "%s: failed rc=%d\n", __func__, rc); in efx_mcdi_drv_attach()
1201 int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address, in efx_mcdi_get_board_cfg() argument
1206 int port_num = efx_port_num(efx); in efx_mcdi_get_board_cfg()
1214 rc = efx_mcdi_rpc(efx, MC_CMD_GET_BOARD_CFG, NULL, 0, in efx_mcdi_get_board_cfg()
1251 netif_err(efx, hw, efx->net_dev, "%s: failed rc=%d len=%d\n", in efx_mcdi_get_board_cfg()
1257 int efx_mcdi_log_ctrl(struct efx_nic *efx, bool evq, bool uart, u32 dest_evq) in efx_mcdi_log_ctrl() argument
1273 rc = efx_mcdi_rpc(efx, MC_CMD_LOG_CTRL, inbuf, sizeof(inbuf), in efx_mcdi_log_ctrl()
1278 int efx_mcdi_nvram_types(struct efx_nic *efx, u32 *nvram_types_out) in efx_mcdi_nvram_types() argument
1286 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_TYPES, NULL, 0, in efx_mcdi_nvram_types()
1299 netif_err(efx, hw, efx->net_dev, "%s: failed rc=%d\n", in efx_mcdi_nvram_types()
1304 int efx_mcdi_nvram_info(struct efx_nic *efx, unsigned int type, in efx_mcdi_nvram_info() argument
1315 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_INFO, inbuf, sizeof(inbuf), in efx_mcdi_nvram_info()
1331 netif_err(efx, hw, efx->net_dev, "%s: failed rc=%d\n", __func__, rc); in efx_mcdi_nvram_info()
1335 static int efx_mcdi_nvram_test(struct efx_nic *efx, unsigned int type) in efx_mcdi_nvram_test() argument
1343 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_TEST, inbuf, sizeof(inbuf), in efx_mcdi_nvram_test()
1357 int efx_mcdi_nvram_test_all(struct efx_nic *efx) in efx_mcdi_nvram_test_all() argument
1363 rc = efx_mcdi_nvram_types(efx, &nvram_types); in efx_mcdi_nvram_test_all()
1370 rc = efx_mcdi_nvram_test(efx, type); in efx_mcdi_nvram_test_all()
1381 netif_err(efx, hw, efx->net_dev, "%s: failed type=%u\n", in efx_mcdi_nvram_test_all()
1384 netif_err(efx, hw, efx->net_dev, "%s: failed rc=%d\n", __func__, rc); in efx_mcdi_nvram_test_all()
1388 static int efx_mcdi_read_assertion(struct efx_nic *efx) in efx_mcdi_read_assertion() argument
1406 rc = efx_mcdi_rpc_quiet(efx, MC_CMD_GET_ASSERTS, in efx_mcdi_read_assertion()
1412 efx_mcdi_display_error(efx, MC_CMD_GET_ASSERTS, in efx_mcdi_read_assertion()
1432 netif_err(efx, hw, efx->net_dev, in efx_mcdi_read_assertion()
1441 netif_err(efx, hw, efx->net_dev, "R%.2d (?): 0x%.8x\n", in efx_mcdi_read_assertion()
1449 static void efx_mcdi_exit_assertion(struct efx_nic *efx) in efx_mcdi_exit_assertion() argument
1462 (void) efx_mcdi_rpc(efx, MC_CMD_REBOOT, inbuf, MC_CMD_REBOOT_IN_LEN, in efx_mcdi_exit_assertion()
1466 int efx_mcdi_handle_assertion(struct efx_nic *efx) in efx_mcdi_handle_assertion() argument
1470 rc = efx_mcdi_read_assertion(efx); in efx_mcdi_handle_assertion()
1474 efx_mcdi_exit_assertion(efx); in efx_mcdi_handle_assertion()
1479 void efx_mcdi_set_id_led(struct efx_nic *efx, enum efx_led_mode mode) in efx_mcdi_set_id_led() argument
1492 rc = efx_mcdi_rpc(efx, MC_CMD_SET_ID_LED, inbuf, sizeof(inbuf), in efx_mcdi_set_id_led()
1496 static int efx_mcdi_reset_func(struct efx_nic *efx) in efx_mcdi_reset_func() argument
1504 rc = efx_mcdi_rpc(efx, MC_CMD_ENTITY_RESET, inbuf, sizeof(inbuf), in efx_mcdi_reset_func()
1509 static int efx_mcdi_reset_mc(struct efx_nic *efx) in efx_mcdi_reset_mc() argument
1516 rc = efx_mcdi_rpc(efx, MC_CMD_REBOOT, inbuf, sizeof(inbuf), in efx_mcdi_reset_mc()
1531 int efx_mcdi_reset(struct efx_nic *efx, enum reset_type method) in efx_mcdi_reset() argument
1537 rc = pci_reset_function(efx->pci_dev); in efx_mcdi_reset()
1541 if (efx->mcdi) { in efx_mcdi_reset()
1542 struct efx_mcdi_iface *mcdi = efx_mcdi(efx); in efx_mcdi_reset()
1549 rc = efx_mcdi_handle_assertion(efx); in efx_mcdi_reset()
1554 return efx_mcdi_reset_mc(efx); in efx_mcdi_reset()
1556 return efx_mcdi_reset_func(efx); in efx_mcdi_reset()
1559 static int efx_mcdi_wol_filter_set(struct efx_nic *efx, u32 type, in efx_mcdi_wol_filter_set() argument
1572 rc = efx_mcdi_rpc(efx, MC_CMD_WOL_FILTER_SET, inbuf, sizeof(inbuf), in efx_mcdi_wol_filter_set()
1588 netif_err(efx, hw, efx->net_dev, "%s: failed rc=%d\n", __func__, rc); in efx_mcdi_wol_filter_set()
1595 efx_mcdi_wol_filter_set_magic(struct efx_nic *efx, const u8 *mac, int *id_out) in efx_mcdi_wol_filter_set_magic() argument
1597 return efx_mcdi_wol_filter_set(efx, MC_CMD_WOL_TYPE_MAGIC, mac, id_out); in efx_mcdi_wol_filter_set_magic()
1601 int efx_mcdi_wol_filter_get_magic(struct efx_nic *efx, int *id_out) in efx_mcdi_wol_filter_get_magic() argument
1607 rc = efx_mcdi_rpc(efx, MC_CMD_WOL_FILTER_GET, NULL, 0, in efx_mcdi_wol_filter_get_magic()
1623 netif_err(efx, hw, efx->net_dev, "%s: failed rc=%d\n", __func__, rc); in efx_mcdi_wol_filter_get_magic()
1628 int efx_mcdi_wol_filter_remove(struct efx_nic *efx, int id) in efx_mcdi_wol_filter_remove() argument
1635 rc = efx_mcdi_rpc(efx, MC_CMD_WOL_FILTER_REMOVE, inbuf, sizeof(inbuf), in efx_mcdi_wol_filter_remove()
1640 int efx_mcdi_flush_rxqs(struct efx_nic *efx) in efx_mcdi_flush_rxqs() argument
1652 efx_for_each_channel(channel, efx) { in efx_mcdi_flush_rxqs()
1656 atomic_dec(&efx->rxq_flush_pending); in efx_mcdi_flush_rxqs()
1665 rc = efx_mcdi_rpc(efx, MC_CMD_FLUSH_RX_QUEUES, inbuf, in efx_mcdi_flush_rxqs()
1672 int efx_mcdi_wol_filter_reset(struct efx_nic *efx) in efx_mcdi_wol_filter_reset() argument
1676 rc = efx_mcdi_rpc(efx, MC_CMD_WOL_FILTER_RESET, NULL, 0, NULL, 0, NULL); in efx_mcdi_wol_filter_reset()
1680 int efx_mcdi_set_workaround(struct efx_nic *efx, u32 type, bool enabled) in efx_mcdi_set_workaround() argument
1687 return efx_mcdi_rpc(efx, MC_CMD_WORKAROUND, inbuf, sizeof(inbuf), in efx_mcdi_set_workaround()
1695 static int efx_mcdi_nvram_update_start(struct efx_nic *efx, unsigned int type) in efx_mcdi_nvram_update_start() argument
1704 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_UPDATE_START, inbuf, sizeof(inbuf), in efx_mcdi_nvram_update_start()
1709 static int efx_mcdi_nvram_read(struct efx_nic *efx, unsigned int type, in efx_mcdi_nvram_read() argument
1722 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_READ, inbuf, sizeof(inbuf), in efx_mcdi_nvram_read()
1731 static int efx_mcdi_nvram_write(struct efx_nic *efx, unsigned int type, in efx_mcdi_nvram_write() argument
1745 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_WRITE, inbuf, in efx_mcdi_nvram_write()
1751 static int efx_mcdi_nvram_erase(struct efx_nic *efx, unsigned int type, in efx_mcdi_nvram_erase() argument
1763 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_ERASE, inbuf, sizeof(inbuf), in efx_mcdi_nvram_erase()
1768 static int efx_mcdi_nvram_update_finish(struct efx_nic *efx, unsigned int type) in efx_mcdi_nvram_update_finish() argument
1777 rc = efx_mcdi_rpc(efx, MC_CMD_NVRAM_UPDATE_FINISH, inbuf, sizeof(inbuf), in efx_mcdi_nvram_update_finish()
1786 struct efx_nic *efx = mtd->priv; in efx_mcdi_mtd_read() local
1794 rc = efx_mcdi_nvram_read(efx, part->nvram_type, offset, in efx_mcdi_mtd_read()
1809 struct efx_nic *efx = mtd->priv; in efx_mcdi_mtd_erase() local
1816 rc = efx_mcdi_nvram_update_start(efx, part->nvram_type); in efx_mcdi_mtd_erase()
1826 rc = efx_mcdi_nvram_erase(efx, part->nvram_type, offset, in efx_mcdi_mtd_erase()
1840 struct efx_nic *efx = mtd->priv; in efx_mcdi_mtd_write() local
1847 rc = efx_mcdi_nvram_update_start(efx, part->nvram_type); in efx_mcdi_mtd_write()
1855 rc = efx_mcdi_nvram_write(efx, part->nvram_type, offset, in efx_mcdi_mtd_write()
1870 struct efx_nic *efx = mtd->priv; in efx_mcdi_mtd_sync() local
1875 rc = efx_mcdi_nvram_update_finish(efx, part->nvram_type); in efx_mcdi_mtd_sync()
1885 struct efx_nic *efx = part->mtd.priv; in efx_mcdi_mtd_rename() local
1888 efx->name, part->type_name, mcdi_part->fw_subtype); in efx_mcdi_mtd_rename()