Lines Matching +full:mbox +full:-

1 // SPDX-License-Identifier: GPL-2.0-only
7 int otx2_cpt_send_mbox_msg(struct otx2_mbox *mbox, struct pci_dev *pdev) in otx2_cpt_send_mbox_msg() argument
11 otx2_mbox_msg_send(mbox, 0); in otx2_cpt_send_mbox_msg()
12 ret = otx2_mbox_wait_for_rsp(mbox, 0); in otx2_cpt_send_mbox_msg()
13 if (ret == -EIO) { in otx2_cpt_send_mbox_msg()
14 dev_err(&pdev->dev, "RVU MBOX timeout.\n"); in otx2_cpt_send_mbox_msg()
17 dev_err(&pdev->dev, "RVU MBOX error: %d.\n", ret); in otx2_cpt_send_mbox_msg()
18 return -EFAULT; in otx2_cpt_send_mbox_msg()
24 int otx2_cpt_send_ready_msg(struct otx2_mbox *mbox, struct pci_dev *pdev) in otx2_cpt_send_ready_msg() argument
28 req = otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*req), in otx2_cpt_send_ready_msg()
31 dev_err(&pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_send_ready_msg()
32 return -EFAULT; in otx2_cpt_send_ready_msg()
34 req->id = MBOX_MSG_READY; in otx2_cpt_send_ready_msg()
35 req->sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_send_ready_msg()
36 req->pcifunc = 0; in otx2_cpt_send_ready_msg()
38 return otx2_cpt_send_mbox_msg(mbox, pdev); in otx2_cpt_send_ready_msg()
42 int otx2_cpt_send_af_reg_requests(struct otx2_mbox *mbox, struct pci_dev *pdev) in otx2_cpt_send_af_reg_requests() argument
44 return otx2_cpt_send_mbox_msg(mbox, pdev); in otx2_cpt_send_af_reg_requests()
48 static int otx2_cpt_add_read_af_reg(struct otx2_mbox *mbox, in otx2_cpt_add_read_af_reg() argument
55 otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*reg_msg), in otx2_cpt_add_read_af_reg()
58 dev_err(&pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_add_read_af_reg()
59 return -EFAULT; in otx2_cpt_add_read_af_reg()
62 reg_msg->hdr.id = MBOX_MSG_CPT_RD_WR_REGISTER; in otx2_cpt_add_read_af_reg()
63 reg_msg->hdr.sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_add_read_af_reg()
64 reg_msg->hdr.pcifunc = 0; in otx2_cpt_add_read_af_reg()
66 reg_msg->is_write = 0; in otx2_cpt_add_read_af_reg()
67 reg_msg->reg_offset = reg; in otx2_cpt_add_read_af_reg()
68 reg_msg->ret_val = val; in otx2_cpt_add_read_af_reg()
69 reg_msg->blkaddr = blkaddr; in otx2_cpt_add_read_af_reg()
74 int otx2_cpt_add_write_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev, in otx2_cpt_add_write_af_reg() argument
80 otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*reg_msg), in otx2_cpt_add_write_af_reg()
83 dev_err(&pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_add_write_af_reg()
84 return -EFAULT; in otx2_cpt_add_write_af_reg()
87 reg_msg->hdr.id = MBOX_MSG_CPT_RD_WR_REGISTER; in otx2_cpt_add_write_af_reg()
88 reg_msg->hdr.sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_add_write_af_reg()
89 reg_msg->hdr.pcifunc = 0; in otx2_cpt_add_write_af_reg()
91 reg_msg->is_write = 1; in otx2_cpt_add_write_af_reg()
92 reg_msg->reg_offset = reg; in otx2_cpt_add_write_af_reg()
93 reg_msg->val = val; in otx2_cpt_add_write_af_reg()
94 reg_msg->blkaddr = blkaddr; in otx2_cpt_add_write_af_reg()
100 int otx2_cpt_read_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev, in otx2_cpt_read_af_reg() argument
105 ret = otx2_cpt_add_read_af_reg(mbox, pdev, reg, val, blkaddr); in otx2_cpt_read_af_reg()
109 return otx2_cpt_send_mbox_msg(mbox, pdev); in otx2_cpt_read_af_reg()
113 int otx2_cpt_write_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev, in otx2_cpt_write_af_reg() argument
118 ret = otx2_cpt_add_write_af_reg(mbox, pdev, reg, val, blkaddr); in otx2_cpt_write_af_reg()
122 return otx2_cpt_send_mbox_msg(mbox, pdev); in otx2_cpt_write_af_reg()
128 struct otx2_mbox *mbox = lfs->mbox; in otx2_cpt_attach_rscrs_msg() local
133 otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*req), in otx2_cpt_attach_rscrs_msg()
136 dev_err(&lfs->pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_attach_rscrs_msg()
137 return -EFAULT; in otx2_cpt_attach_rscrs_msg()
140 req->hdr.id = MBOX_MSG_ATTACH_RESOURCES; in otx2_cpt_attach_rscrs_msg()
141 req->hdr.sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_attach_rscrs_msg()
142 req->hdr.pcifunc = 0; in otx2_cpt_attach_rscrs_msg()
143 req->cptlfs = lfs->lfs_num; in otx2_cpt_attach_rscrs_msg()
144 req->cpt_blkaddr = lfs->blkaddr; in otx2_cpt_attach_rscrs_msg()
145 req->modify = 1; in otx2_cpt_attach_rscrs_msg()
146 ret = otx2_cpt_send_mbox_msg(mbox, lfs->pdev); in otx2_cpt_attach_rscrs_msg()
150 if (!lfs->are_lfs_attached) in otx2_cpt_attach_rscrs_msg()
151 ret = -EINVAL; in otx2_cpt_attach_rscrs_msg()
158 struct otx2_mbox *mbox = lfs->mbox; in otx2_cpt_detach_rsrcs_msg() local
163 otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*req), in otx2_cpt_detach_rsrcs_msg()
166 dev_err(&lfs->pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_detach_rsrcs_msg()
167 return -EFAULT; in otx2_cpt_detach_rsrcs_msg()
170 req->hdr.id = MBOX_MSG_DETACH_RESOURCES; in otx2_cpt_detach_rsrcs_msg()
171 req->hdr.sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_detach_rsrcs_msg()
172 req->hdr.pcifunc = 0; in otx2_cpt_detach_rsrcs_msg()
173 req->cptlfs = 1; in otx2_cpt_detach_rsrcs_msg()
174 ret = otx2_cpt_send_mbox_msg(mbox, lfs->pdev); in otx2_cpt_detach_rsrcs_msg()
178 if (lfs->are_lfs_attached) in otx2_cpt_detach_rsrcs_msg()
179 ret = -EINVAL; in otx2_cpt_detach_rsrcs_msg()
187 struct otx2_mbox *mbox = lfs->mbox; in otx2_cpt_msix_offset_msg() local
188 struct pci_dev *pdev = lfs->pdev; in otx2_cpt_msix_offset_msg()
192 req = otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*req), in otx2_cpt_msix_offset_msg()
195 dev_err(&pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_msix_offset_msg()
196 return -EFAULT; in otx2_cpt_msix_offset_msg()
199 req->id = MBOX_MSG_MSIX_OFFSET; in otx2_cpt_msix_offset_msg()
200 req->sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_msix_offset_msg()
201 req->pcifunc = 0; in otx2_cpt_msix_offset_msg()
202 ret = otx2_cpt_send_mbox_msg(mbox, pdev); in otx2_cpt_msix_offset_msg()
206 for (i = 0; i < lfs->lfs_num; i++) { in otx2_cpt_msix_offset_msg()
207 if (lfs->lf[i].msix_offset == MSIX_VECTOR_INVALID) { in otx2_cpt_msix_offset_msg()
208 dev_err(&pdev->dev, in otx2_cpt_msix_offset_msg()
210 lfs->lf[i].msix_offset, i); in otx2_cpt_msix_offset_msg()
211 return -EINVAL; in otx2_cpt_msix_offset_msg()
218 int otx2_cpt_sync_mbox_msg(struct otx2_mbox *mbox) in otx2_cpt_sync_mbox_msg() argument
222 if (!otx2_mbox_nonempty(mbox, 0)) in otx2_cpt_sync_mbox_msg()
224 otx2_mbox_msg_send(mbox, 0); in otx2_cpt_sync_mbox_msg()
225 err = otx2_mbox_wait_for_rsp(mbox, 0); in otx2_cpt_sync_mbox_msg()
229 return otx2_mbox_check_rsp_msgs(mbox, 0); in otx2_cpt_sync_mbox_msg()
235 struct otx2_mbox *mbox = lfs->mbox; in otx2_cpt_lf_reset_msg() local
236 struct pci_dev *pdev = lfs->pdev; in otx2_cpt_lf_reset_msg()
240 req = (struct cpt_lf_rst_req *)otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*req), in otx2_cpt_lf_reset_msg()
243 dev_err(&pdev->dev, "RVU MBOX failed to get message.\n"); in otx2_cpt_lf_reset_msg()
244 return -EFAULT; in otx2_cpt_lf_reset_msg()
247 req->hdr.id = MBOX_MSG_CPT_LF_RESET; in otx2_cpt_lf_reset_msg()
248 req->hdr.sig = OTX2_MBOX_REQ_SIG; in otx2_cpt_lf_reset_msg()
249 req->hdr.pcifunc = 0; in otx2_cpt_lf_reset_msg()
250 req->slot = slot; in otx2_cpt_lf_reset_msg()
251 ret = otx2_cpt_send_mbox_msg(mbox, pdev); in otx2_cpt_lf_reset_msg()