Lines Matching refs:cldev

146  * @cldev: the pointer to the MEI client device
177 struct mei_cl_device *cldev;
234 static void iwl_mei_free_shared_mem(struct mei_cl_device *cldev)
236 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
238 if (mei_cldev_dma_unmap(cldev))
239 dev_err(&cldev->dev, "Couldn't unmap the shared mem properly\n");
245 static int iwl_mei_alloc_mem_for_version(struct mei_cl_device *cldev,
248 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
255 mem->ctrl = mei_cldev_dma_map(cldev, HBM_DMA_BUF_ID_WLAN, mem_size);
269 static int iwl_mei_alloc_shared_mem(struct mei_cl_device *cldev)
280 ret = iwl_mei_alloc_mem_for_version(cldev, IWL_MEI_SAP_VERSION_4);
282 ret = iwl_mei_alloc_mem_for_version(cldev,
331 static ssize_t iwl_mei_write_cyclic_buf(struct mei_cl_device *cldev,
343 dev_err(&cldev->dev,
352 dev_err(&cldev->dev,
383 static int iwl_mei_send_check_shared_area(struct mei_cl_device *cldev)
385 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
398 ret = mei_cldev_send(cldev, (void *)&msg, sizeof(msg));
400 dev_err(&cldev->dev,
424 iwl_mei_send_check_shared_area(mei->cldev);
429 static int iwl_mei_send_sap_msg_payload(struct mei_cl_device *cldev,
432 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
442 dev_err(&cldev->dev,
448 dev_err(&cldev->dev,
454 dev_dbg(&cldev->dev, "Sending %d\n", hdr->type);
467 return iwl_mei_send_check_shared_area(cldev);
519 dev_err(&mei->cldev->dev,
528 dev_err(&mei->cldev->dev,
534 dev_err(&mei->cldev->dev,
572 iwl_mei_send_sap_msg(struct mei_cl_device *cldev, u16 type)
578 return iwl_mei_send_sap_msg_payload(cldev, &msg);
591 iwl_mei_send_check_shared_area(mei->cldev);
611 dev_err(&mei->cldev->dev,
665 iwl_mei_handle_rx_start_ok(struct mei_cl_device *cldev,
670 dev_err(&cldev->dev,
672 dev_err(&cldev->dev,
679 dev_err(&cldev->dev,
694 static void iwl_mei_handle_csme_filters(struct mei_cl_device *cldev,
719 iwl_mei_handle_conn_status(struct mei_cl_device *cldev,
722 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
785 iwl_mei_send_sap_msg(mei->cldev,
790 iwl_mei_send_sap_msg(mei->cldev, SAP_MSG_NOTIF_WHO_OWNS_NIC);
794 iwl_mei_send_sap_msg_payload(mei->cldev, &link_msg.hdr);
797 iwl_mei_send_sap_msg_payload(mei->cldev, &mcc_msg.hdr);
802 iwl_mei_send_sap_msg_payload(mei->cldev, &sar_msg.hdr);
810 iwl_mei_send_sap_msg_payload(mei->cldev, &nic_info_msg.hdr);
813 iwl_mei_send_sap_msg_payload(mei->cldev, &rfkill_msg.hdr);
816 static void iwl_mei_handle_amt_state(struct mei_cl_device *cldev,
819 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
839 static void iwl_mei_handle_nic_owner(struct mei_cl_device *cldev,
842 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
847 static void iwl_mei_handle_can_release_ownership(struct mei_cl_device *cldev,
852 iwl_mei_send_sap_msg(cldev,
856 static void iwl_mei_handle_csme_taking_ownership(struct mei_cl_device *cldev,
859 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
861 dev_info(&cldev->dev, "CSME takes ownership\n");
874 iwl_mei_send_sap_msg(cldev,
881 static void iwl_mei_handle_nvm(struct mei_cl_device *cldev,
884 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
905 static void iwl_mei_handle_rx_host_own_req(struct mei_cl_device *cldev,
908 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
915 dev_info(&cldev->dev, "Ownership req denied\n");
922 iwl_mei_send_sap_msg(cldev,
930 static void iwl_mei_handle_pldr_ack(struct mei_cl_device *cldev,
933 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
939 static void iwl_mei_handle_ping(struct mei_cl_device *cldev,
942 iwl_mei_send_sap_msg(cldev, SAP_MSG_NOTIF_PONG);
945 static void iwl_mei_handle_sap_msg(struct mei_cl_device *cldev,
951 dev_dbg(&cldev->dev,
959 dev_err(&cldev->dev, \
967 _handler(cldev, (const void *)hdr); \
974 dev_err(&cldev->dev, \
981 _handler(cldev, (const void *)hdr); \
987 dev_err(&cldev->dev, \
1027 dev_dbg(&cldev->dev, "Unsupported message: type %d, len %d\n",
1058 static void iwl_mei_handle_sap_data(struct mei_cl_device *cldev,
1082 dev_err(&cldev->dev,
1089 dev_err(&cldev->dev,
1097 dev_err(&cldev->dev, "Unsupported Rx data: type %d, len %d\n",
1132 static void iwl_mei_handle_sap_rx_cmd(struct mei_cl_device *cldev,
1157 iwl_mei_handle_sap_msg(cldev, hdr);
1163 dev_err(&cldev->dev,
1169 static void iwl_mei_handle_sap_rx(struct mei_cl_device *cldev,
1180 dev_err(&cldev->dev,
1191 iwl_mei_handle_sap_data(cldev, q_head, q_sz, rd, wr,
1194 iwl_mei_handle_sap_rx_cmd(cldev, q_head, q_sz, rd, wr,
1201 static void iwl_mei_handle_check_shared_area(struct mei_cl_device *cldev)
1203 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
1223 iwl_mei_handle_sap_rx(cldev, notif_q, q_head, NULL, q_sz);
1233 iwl_mei_handle_sap_rx(cldev, notif_q, q_head, &tx_skbs, q_sz);
1252 dev_err(&cldev->dev, "Can't Tx without a netdev\n");
1268 static void iwl_mei_rx(struct mei_cl_device *cldev)
1274 ret = mei_cldev_recv(cldev, (u8 *)&msg, sizeof(msg));
1276 dev_err(&cldev->dev, "failed to receive data: %zd\n", ret);
1281 dev_err(&cldev->dev, "got an empty response\n");
1293 iwl_mei_handle_rx_start_ok(cldev, (void *)msg, ret);
1296 iwl_mei_handle_check_shared_area(cldev);
1299 dev_err(&cldev->dev, "got a RX notification: %d\n",
1305 static int iwl_mei_send_start(struct mei_cl_device *cldev)
1307 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
1319 ret = mei_cldev_send(cldev, (void *)&msg, sizeof(msg));
1321 dev_err(&cldev->dev,
1330 static int iwl_mei_enable(struct mei_cl_device *cldev)
1334 ret = mei_cldev_enable(cldev);
1336 dev_err(&cldev->dev, "failed to enable the device: %d\n", ret);
1340 ret = mei_cldev_register_rx_cb(cldev, iwl_mei_rx);
1342 dev_err(&cldev->dev,
1344 mei_cldev_disable(cldev);
1430 ret = iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1483 ret = iwl_mei_send_sap_msg(mei->cldev,
1526 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1570 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1599 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1635 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1664 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1692 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1720 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr);
1786 iwl_mei_send_sap_msg(mei->cldev,
1825 iwl_mei_send_sap_msg(mei->cldev,
1868 iwl_mei_send_sap_msg(mei->cldev,
1964 static int iwl_mei_probe(struct mei_cl_device *cldev,
1971 mei = devm_kzalloc(&cldev->dev, sizeof(*mei), GFP_KERNEL);
1985 mei_cldev_set_drvdata(cldev, mei);
1986 mei->cldev = cldev;
1990 ret = iwl_mei_alloc_shared_mem(cldev);
2002 dev_dbg(&cldev->dev,
2010 dev_err(&cldev->dev, "Couldn't allocate the shared memory: %d\n",
2017 ret = iwl_mei_enable(cldev);
2028 ret = iwl_mei_send_start(cldev);
2034 iwl_mei_global_cldev = cldev;
2040 mei_cldev_disable(cldev);
2042 iwl_mei_free_shared_mem(cldev);
2044 mei_cldev_set_drvdata(cldev, NULL);
2045 devm_kfree(&cldev->dev, mei);
2053 static void iwl_mei_remove(struct mei_cl_device *cldev)
2055 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev);
2062 if (mei_cldev_enabled(cldev) && iwl_mei_cache.ops) {
2111 iwl_mei_send_sap_msg(mei->cldev,
2127 dev_err(&mei->cldev->dev,
2152 mei_cldev_disable(cldev);
2178 iwl_mei_free_shared_mem(cldev);
2182 mei_cldev_set_drvdata(cldev, NULL);
2188 devm_kfree(&cldev->dev, mei);