Lines Matching full:mbox

62 		dev_err(&oct->pdev->dev, "Get VF link status failed via host control Mbox\n");  in octep_pfvf_get_link_status()
78 dev_err(&oct->pdev->dev, "Set VF link status failed via host control Mbox\n"); in octep_pfvf_set_link_status()
93 dev_err(&oct->pdev->dev, "Set VF Rx link state failed via host control Mbox\n"); in octep_pfvf_set_rx_state()
103 struct octep_mbox *mbox; in octep_send_notification() local
107 dev_dbg(&oct->pdev->dev, "VF Mbox doesn't support Notification:%d on VF ver:%d\n", in octep_send_notification()
114 if (!oct->mbox[vf_mbox_queue]) { in octep_send_notification()
115 dev_err(&oct->pdev->dev, "Notif obtained for bad mbox vf %d\n", vf_id); in octep_send_notification()
118 mbox = oct->mbox[vf_mbox_queue]; in octep_send_notification()
120 mutex_lock(&mbox->lock); in octep_send_notification()
121 writeq(cmd.u64, mbox->pf_vf_data_reg); in octep_send_notification()
122 mutex_unlock(&mbox->lock); in octep_send_notification()
136 dev_err(&oct->pdev->dev, "Set VF MTU failed via host control Mbox\n"); in octep_pfvf_set_mtu()
161 dev_err(&oct->pdev->dev, "Set VF MAC address failed via host control Mbox\n"); in octep_pfvf_set_mac_addr()
176 dev_err(&oct->pdev->dev, "Get VF MAC address failed via host control Mbox\n"); in octep_pfvf_get_mac_addr()
208 dev_err(&oct->pdev->dev, "Get VF info failed via host control Mbox\n"); in octep_pfvf_get_fw_info()
233 dev_err(&oct->pdev->dev, "Set VF offloads failed via host control Mbox\n"); in octep_pfvf_set_offloads()
249 oct->mbox[ring] = vzalloc(sizeof(*oct->mbox[ring])); in octep_setup_pfvf_mbox()
251 if (!oct->mbox[ring]) in octep_setup_pfvf_mbox()
254 memset(oct->mbox[ring], 0, sizeof(struct octep_mbox)); in octep_setup_pfvf_mbox()
256 mutex_init(&oct->mbox[ring]->lock); in octep_setup_pfvf_mbox()
257 INIT_WORK(&oct->mbox[ring]->wk.work, octep_pfvf_mbox_work); in octep_setup_pfvf_mbox()
258 oct->mbox[ring]->wk.ctxptr = oct->mbox[ring]; in octep_setup_pfvf_mbox()
259 oct->mbox[ring]->oct = oct; in octep_setup_pfvf_mbox()
260 oct->mbox[ring]->vf_id = i; in octep_setup_pfvf_mbox()
269 cancel_work_sync(&oct->mbox[ring]->wk.work); in octep_setup_pfvf_mbox()
270 mutex_destroy(&oct->mbox[ring]->lock); in octep_setup_pfvf_mbox()
271 vfree(oct->mbox[ring]); in octep_setup_pfvf_mbox()
272 oct->mbox[ring] = NULL; in octep_setup_pfvf_mbox()
285 if (!oct->mbox[ring]) in octep_delete_pfvf_mbox()
288 if (work_pending(&oct->mbox[ring]->wk.work)) in octep_delete_pfvf_mbox()
289 cancel_work_sync(&oct->mbox[ring]->wk.work); in octep_delete_pfvf_mbox()
291 mutex_destroy(&oct->mbox[ring]->lock); in octep_delete_pfvf_mbox()
292 vfree(oct->mbox[ring]); in octep_delete_pfvf_mbox()
293 oct->mbox[ring] = NULL; in octep_delete_pfvf_mbox()
298 struct octep_mbox *mbox, int vf_id, in octep_pfvf_pf_get_data() argument
312 mbox->config_data_index = 0; in octep_pfvf_pf_get_data()
313 memset(mbox->config_data, 0, MAX_VF_PF_MBOX_DATA_SIZE); in octep_pfvf_pf_get_data()
323 mbox->message_len = sizeof(link_info); in octep_pfvf_pf_get_data()
324 *((int32_t *)rsp->s_data.data) = mbox->message_len; in octep_pfvf_pf_get_data()
325 memcpy(mbox->config_data, (u8 *)&link_info, sizeof(link_info)); in octep_pfvf_pf_get_data()
336 mbox->message_len = sizeof(rx_stats) + sizeof(tx_stats); in octep_pfvf_pf_get_data()
337 *((int32_t *)rsp->s_data.data) = mbox->message_len; in octep_pfvf_pf_get_data()
338 memcpy(mbox->config_data, (u8 *)&rx_stats, sizeof(rx_stats)); in octep_pfvf_pf_get_data()
339 memcpy(mbox->config_data + sizeof(rx_stats), (u8 *)&tx_stats, in octep_pfvf_pf_get_data()
348 *((int32_t *)rsp->s_data.data) = mbox->message_len; in octep_pfvf_pf_get_data()
352 if (mbox->message_len > OCTEP_PFVF_MBOX_MAX_DATA_SIZE) in octep_pfvf_pf_get_data()
355 length = mbox->message_len; in octep_pfvf_pf_get_data()
357 mbox->message_len -= length; in octep_pfvf_pf_get_data()
361 mbox->config_data[mbox->config_data_index]; in octep_pfvf_pf_get_data()
362 mbox->config_data_index++; in octep_pfvf_pf_get_data()
378 pr_info("Unknown mbox notif for vf: %u\n", in octep_pfvf_notify()
392 struct octep_mbox *mbox = NULL; in octep_pfvf_mbox_work() local
396 mbox = (struct octep_mbox *)wk->ctxptr; in octep_pfvf_mbox_work()
397 oct = (struct octep_device *)mbox->oct; in octep_pfvf_mbox_work()
398 vf_id = mbox->vf_id; in octep_pfvf_mbox_work()
400 mutex_lock(&mbox->lock); in octep_pfvf_mbox_work()
401 cmd.u64 = readq(mbox->vf_pf_data_reg); in octep_pfvf_mbox_work()
428 octep_pfvf_pf_get_data(oct, mbox, vf_id, cmd, &rsp); in octep_pfvf_mbox_work()
447 writeq(rsp.u64, mbox->vf_pf_data_reg); in octep_pfvf_mbox_work()
448 mutex_unlock(&mbox->lock); in octep_pfvf_mbox_work()