Lines Matching refs:wcnss

125 	struct wcnss_ctrl *wcnss = dev_get_drvdata(&rpdev->dev);
133 dev_err(wcnss->dev,
139 dev_info(wcnss->dev, "WCNSS Version %d.%d %d.%d\n",
143 complete(&wcnss->ack);
147 dev_err(wcnss->dev,
153 wcnss->ack_status = nvresp->status;
154 complete(&wcnss->ack);
157 dev_dbg(wcnss->dev, "cold boot complete\n");
158 complete(&wcnss->cbc);
161 dev_info(wcnss->dev, "unknown message type %d\n", hdr->type);
170 * @wcnss: wcnss ctrl driver context
172 static int wcnss_request_version(struct wcnss_ctrl *wcnss)
179 ret = rpmsg_send(wcnss->channel, &msg, sizeof(msg));
183 ret = wait_for_completion_timeout(&wcnss->ack, WCNSS_CBC_TIMEOUT);
185 dev_err(wcnss->dev, "timeout waiting for version response\n");
194 * @wcnss: wcnss_ctrl state handle
199 static int wcnss_download_nv(struct wcnss_ctrl *wcnss, bool *expect_cbc)
203 struct device *dev = wcnss->dev;
242 ret = rpmsg_send(wcnss->channel, req, req->hdr.len);
255 ret = wait_for_completion_timeout(&wcnss->ack, WCNSS_REQUEST_TIMEOUT);
260 *expect_cbc = wcnss->ack_status == WCNSS_ACK_COLD_BOOTING;
274 * @wcnss: wcnss handle, retrieved from drvdata
279 struct rpmsg_endpoint *qcom_wcnss_open_channel(void *wcnss, const char *name, rpmsg_rx_cb_t cb, void *priv)
282 struct wcnss_ctrl *_wcnss = wcnss;
294 struct wcnss_ctrl *wcnss = container_of(work, struct wcnss_ctrl, probe_work);
298 ret = wcnss_request_version(wcnss);
302 ret = wcnss_download_nv(wcnss, &expect_cbc);
308 ret = wait_for_completion_timeout(&wcnss->cbc, WCNSS_REQUEST_TIMEOUT);
310 dev_err(wcnss->dev, "expected cold boot completion\n");
313 of_platform_populate(wcnss->dev->of_node, NULL, NULL, wcnss->dev);
318 struct wcnss_ctrl *wcnss;
320 wcnss = devm_kzalloc(&rpdev->dev, sizeof(*wcnss), GFP_KERNEL);
321 if (!wcnss)
324 wcnss->dev = &rpdev->dev;
325 wcnss->channel = rpdev->ept;
327 init_completion(&wcnss->ack);
328 init_completion(&wcnss->cbc);
329 INIT_WORK(&wcnss->probe_work, wcnss_async_probe);
331 dev_set_drvdata(&rpdev->dev, wcnss);
333 schedule_work(&wcnss->probe_work);
340 struct wcnss_ctrl *wcnss = dev_get_drvdata(&rpdev->dev);
342 cancel_work_sync(&wcnss->probe_work);
347 { .compatible = "qcom,wcnss", },