Lines Matching defs:mbox

103 	struct octep_mbox *mbox;
114 if (!oct->mbox[vf_mbox_queue]) {
115 dev_err(&oct->pdev->dev, "Notif obtained for bad mbox vf %d\n", vf_id);
118 mbox = oct->mbox[vf_mbox_queue];
120 mutex_lock(&mbox->lock);
121 writeq(cmd.u64, mbox->pf_vf_data_reg);
122 mutex_unlock(&mbox->lock);
249 oct->mbox[ring] = vzalloc(sizeof(*oct->mbox[ring]));
251 if (!oct->mbox[ring])
254 memset(oct->mbox[ring], 0, sizeof(struct octep_mbox));
256 mutex_init(&oct->mbox[ring]->lock);
257 INIT_WORK(&oct->mbox[ring]->wk.work, octep_pfvf_mbox_work);
258 oct->mbox[ring]->wk.ctxptr = oct->mbox[ring];
259 oct->mbox[ring]->oct = oct;
260 oct->mbox[ring]->vf_id = i;
269 cancel_work_sync(&oct->mbox[ring]->wk.work);
270 mutex_destroy(&oct->mbox[ring]->lock);
271 vfree(oct->mbox[ring]);
272 oct->mbox[ring] = NULL;
285 if (!oct->mbox[ring])
288 if (work_pending(&oct->mbox[ring]->wk.work))
289 cancel_work_sync(&oct->mbox[ring]->wk.work);
291 mutex_destroy(&oct->mbox[ring]->lock);
292 vfree(oct->mbox[ring]);
293 oct->mbox[ring] = NULL;
298 struct octep_mbox *mbox, int vf_id,
312 mbox->config_data_index = 0;
313 memset(mbox->config_data, 0, MAX_VF_PF_MBOX_DATA_SIZE);
323 mbox->message_len = sizeof(link_info);
324 *((int32_t *)rsp->s_data.data) = mbox->message_len;
325 memcpy(mbox->config_data, (u8 *)&link_info, sizeof(link_info));
336 mbox->message_len = sizeof(rx_stats) + sizeof(tx_stats);
337 *((int32_t *)rsp->s_data.data) = mbox->message_len;
338 memcpy(mbox->config_data, (u8 *)&rx_stats, sizeof(rx_stats));
339 memcpy(mbox->config_data + sizeof(rx_stats), (u8 *)&tx_stats,
348 *((int32_t *)rsp->s_data.data) = mbox->message_len;
352 if (mbox->message_len > OCTEP_PFVF_MBOX_MAX_DATA_SIZE)
355 length = mbox->message_len;
357 mbox->message_len -= length;
361 mbox->config_data[mbox->config_data_index];
362 mbox->config_data_index++;
378 pr_info("Unknown mbox notif for vf: %u\n",
392 struct octep_mbox *mbox = NULL;
396 mbox = (struct octep_mbox *)wk->ctxptr;
397 oct = (struct octep_device *)mbox->oct;
398 vf_id = mbox->vf_id;
400 mutex_lock(&mbox->lock);
401 cmd.u64 = readq(mbox->vf_pf_data_reg);
428 octep_pfvf_pf_get_data(oct, mbox, vf_id, cmd, &rsp);
447 writeq(rsp.u64, mbox->vf_pf_data_reg);
448 mutex_unlock(&mbox->lock);