Lines Matching refs:mbox_cmd
132 struct octeon_mbox_cmd *mbox_cmd) in octeon_mbox_write() argument
134 struct octeon_mbox *mbox = oct->mbox[mbox_cmd->q_no]; in octeon_mbox_write()
141 if ((mbox_cmd->msg.s.type == OCTEON_MBOX_RESPONSE) && in octeon_mbox_write()
147 if ((mbox_cmd->msg.s.type == OCTEON_MBOX_REQUEST) && in octeon_mbox_write()
153 if (mbox_cmd->msg.s.type == OCTEON_MBOX_REQUEST) { in octeon_mbox_write()
154 memcpy(&mbox->mbox_resp, mbox_cmd, in octeon_mbox_write()
172 writeq(mbox_cmd->msg.u64, mbox->mbox_write_reg); in octeon_mbox_write()
173 for (i = 0; i < (u32)(mbox_cmd->msg.s.len - 1); i++) { in octeon_mbox_write()
184 writeq(mbox_cmd->data[i], mbox->mbox_write_reg); in octeon_mbox_write()
191 if (mbox_cmd->msg.s.type == OCTEON_MBOX_RESPONSE) { in octeon_mbox_write()
195 if ((!mbox_cmd->msg.s.resp_needed) || in octeon_mbox_write()
237 struct octeon_mbox_cmd *mbox_cmd) in octeon_mbox_process_cmd() argument
241 switch (mbox_cmd->msg.s.cmd) { in octeon_mbox_process_cmd()
244 mbox_cmd->msg.s.type = OCTEON_MBOX_RESPONSE; in octeon_mbox_process_cmd()
245 mbox_cmd->msg.s.resp_needed = 1; in octeon_mbox_process_cmd()
246 mbox_cmd->msg.s.len = 2; in octeon_mbox_process_cmd()
247 mbox_cmd->data[0] = 0; /* VF version is in mbox_cmd->data[0] */ in octeon_mbox_process_cmd()
248 ((struct lio_version *)&mbox_cmd->data[0])->major = in octeon_mbox_process_cmd()
250 ((struct lio_version *)&mbox_cmd->data[0])->minor = in octeon_mbox_process_cmd()
252 ((struct lio_version *)&mbox_cmd->data[0])->micro = in octeon_mbox_process_cmd()
254 memcpy(mbox_cmd->msg.s.params, (uint8_t *)&oct->pfvf_hsword, 6); in octeon_mbox_process_cmd()
256 octeon_mbox_write(oct, mbox_cmd); in octeon_mbox_process_cmd()
271 mbox_cmd->msg.s.params); in octeon_mbox_process_cmd()
276 mbox_cmd->msg.s.type = OCTEON_MBOX_RESPONSE; in octeon_mbox_process_cmd()
277 mbox_cmd->msg.s.resp_needed = 1; in octeon_mbox_process_cmd()
278 mbox_cmd->msg.s.len = 1 + in octeon_mbox_process_cmd()
280 get_vf_stats(oct, (struct oct_vf_stats *)mbox_cmd->data); in octeon_mbox_process_cmd()
281 octeon_mbox_write(oct, mbox_cmd); in octeon_mbox_process_cmd()
296 struct octeon_mbox_cmd mbox_cmd; in octeon_mbox_process_message() local
304 memcpy(&mbox_cmd, &mbox->mbox_resp, in octeon_mbox_process_message()
309 mbox_cmd.recv_status = 1; in octeon_mbox_process_message()
310 if (mbox_cmd.fn) in octeon_mbox_process_message()
311 mbox_cmd.fn(mbox->oct_dev, &mbox_cmd, in octeon_mbox_process_message()
312 mbox_cmd.fn_arg); in octeon_mbox_process_message()
323 memcpy(&mbox_cmd, &mbox->mbox_resp, in octeon_mbox_process_message()
328 mbox_cmd.recv_status = 0; in octeon_mbox_process_message()
329 if (mbox_cmd.fn) in octeon_mbox_process_message()
330 mbox_cmd.fn(mbox->oct_dev, &mbox_cmd, mbox_cmd.fn_arg); in octeon_mbox_process_message()
335 memcpy(&mbox_cmd, &mbox->mbox_req, in octeon_mbox_process_message()
337 if (!mbox_cmd.msg.s.resp_needed) { in octeon_mbox_process_message()
346 octeon_mbox_process_cmd(mbox, &mbox_cmd); in octeon_mbox_process_message()
359 struct octeon_mbox_cmd *mbox_cmd; in octeon_mbox_cancel() local
363 mbox_cmd = &mbox->mbox_resp; in octeon_mbox_cancel()
371 memset(mbox_cmd, 0, sizeof(*mbox_cmd)); in octeon_mbox_cancel()