Lines Matching refs:cldev
162 struct mei_cl_device *cldev; member
212 static void iwl_mei_free_shared_mem(struct mei_cl_device *cldev) in iwl_mei_free_shared_mem() argument
214 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_free_shared_mem()
216 if (mei_cldev_dma_unmap(cldev)) in iwl_mei_free_shared_mem()
217 dev_err(&cldev->dev, "Couldn't unmap the shared mem properly\n"); in iwl_mei_free_shared_mem()
223 static int iwl_mei_alloc_shared_mem(struct mei_cl_device *cldev) in iwl_mei_alloc_shared_mem() argument
225 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_alloc_shared_mem()
228 mem->ctrl = mei_cldev_dma_map(cldev, HBM_DMA_BUF_ID_WLAN, in iwl_mei_alloc_shared_mem()
285 static ssize_t iwl_mei_write_cyclic_buf(struct mei_cl_device *cldev, in iwl_mei_write_cyclic_buf() argument
297 dev_err(&cldev->dev, in iwl_mei_write_cyclic_buf()
306 dev_err(&cldev->dev, in iwl_mei_write_cyclic_buf()
337 static int iwl_mei_send_check_shared_area(struct mei_cl_device *cldev) in iwl_mei_send_check_shared_area() argument
339 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_send_check_shared_area()
352 ret = mei_cldev_send(cldev, (void *)&msg, sizeof(msg)); in iwl_mei_send_check_shared_area()
354 dev_err(&cldev->dev, in iwl_mei_send_check_shared_area()
378 iwl_mei_send_check_shared_area(mei->cldev); in iwl_mei_csa_throttle_end_wk()
383 static int iwl_mei_send_sap_msg_payload(struct mei_cl_device *cldev, in iwl_mei_send_sap_msg_payload() argument
386 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_send_sap_msg_payload()
396 dev_err(&cldev->dev, in iwl_mei_send_sap_msg_payload()
402 dev_err(&cldev->dev, in iwl_mei_send_sap_msg_payload()
408 dev_dbg(&cldev->dev, "Sending %d\n", hdr->type); in iwl_mei_send_sap_msg_payload()
421 return iwl_mei_send_check_shared_area(cldev); in iwl_mei_send_sap_msg_payload()
473 dev_err(&mei->cldev->dev, in iwl_mei_add_data_to_ring()
482 dev_err(&mei->cldev->dev, in iwl_mei_add_data_to_ring()
488 dev_err(&mei->cldev->dev, in iwl_mei_add_data_to_ring()
526 iwl_mei_send_sap_msg(struct mei_cl_device *cldev, u16 type) in iwl_mei_send_sap_msg() argument
532 return iwl_mei_send_sap_msg_payload(cldev, &msg); in iwl_mei_send_sap_msg()
545 iwl_mei_send_check_shared_area(mei->cldev); in iwl_mei_send_csa_msg_wk()
565 dev_err(&mei->cldev->dev, in iwl_mei_rx_handler()
592 iwl_mei_handle_rx_start_ok(struct mei_cl_device *cldev, in iwl_mei_handle_rx_start_ok() argument
596 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_rx_start_ok()
599 dev_err(&cldev->dev, in iwl_mei_handle_rx_start_ok()
601 dev_err(&cldev->dev, in iwl_mei_handle_rx_start_ok()
608 dev_err(&cldev->dev, in iwl_mei_handle_rx_start_ok()
618 iwl_mei_send_sap_msg(mei->cldev, in iwl_mei_handle_rx_start_ok()
626 static void iwl_mei_handle_csme_filters(struct mei_cl_device *cldev, in iwl_mei_handle_csme_filters() argument
651 iwl_mei_handle_conn_status(struct mei_cl_device *cldev, in iwl_mei_handle_conn_status() argument
654 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_conn_status()
715 iwl_mei_send_sap_msg(mei->cldev, SAP_MSG_NOTIF_WHO_OWNS_NIC); in iwl_mei_set_init_conf()
719 iwl_mei_send_sap_msg_payload(mei->cldev, &link_msg.hdr); in iwl_mei_set_init_conf()
722 iwl_mei_send_sap_msg_payload(mei->cldev, &mcc_msg.hdr); in iwl_mei_set_init_conf()
727 iwl_mei_send_sap_msg_payload(mei->cldev, &sar_msg.hdr); in iwl_mei_set_init_conf()
732 iwl_mei_send_sap_msg_payload(mei->cldev, &nic_info_msg.hdr); in iwl_mei_set_init_conf()
734 iwl_mei_send_sap_msg_payload(mei->cldev, &rfkill_msg.hdr); in iwl_mei_set_init_conf()
737 static void iwl_mei_handle_amt_state(struct mei_cl_device *cldev, in iwl_mei_handle_amt_state() argument
740 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_amt_state()
775 static void iwl_mei_handle_nic_owner(struct mei_cl_device *cldev, in iwl_mei_handle_nic_owner() argument
778 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_nic_owner()
783 static void iwl_mei_handle_can_release_ownership(struct mei_cl_device *cldev, in iwl_mei_handle_can_release_ownership() argument
788 iwl_mei_send_sap_msg(cldev, in iwl_mei_handle_can_release_ownership()
792 static void iwl_mei_handle_csme_taking_ownership(struct mei_cl_device *cldev, in iwl_mei_handle_csme_taking_ownership() argument
795 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_csme_taking_ownership()
797 dev_info(&cldev->dev, "CSME takes ownership\n"); in iwl_mei_handle_csme_taking_ownership()
811 static void iwl_mei_handle_nvm(struct mei_cl_device *cldev, in iwl_mei_handle_nvm() argument
814 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_nvm()
835 static void iwl_mei_handle_rx_host_own_req(struct mei_cl_device *cldev, in iwl_mei_handle_rx_host_own_req() argument
838 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_rx_host_own_req()
845 dev_info(&cldev->dev, "Ownership req denied\n"); in iwl_mei_handle_rx_host_own_req()
852 iwl_mei_send_sap_msg(cldev, in iwl_mei_handle_rx_host_own_req()
860 static void iwl_mei_handle_ping(struct mei_cl_device *cldev, in iwl_mei_handle_ping() argument
863 iwl_mei_send_sap_msg(cldev, SAP_MSG_NOTIF_PONG); in iwl_mei_handle_ping()
866 static void iwl_mei_handle_sap_msg(struct mei_cl_device *cldev, in iwl_mei_handle_sap_msg() argument
872 dev_dbg(&cldev->dev, in iwl_mei_handle_sap_msg()
880 dev_err(&cldev->dev, \ in iwl_mei_handle_sap_msg()
888 _handler(cldev, (const void *)hdr); \ in iwl_mei_handle_sap_msg()
895 dev_err(&cldev->dev, \ in iwl_mei_handle_sap_msg()
902 _handler(cldev, (const void *)hdr); \ in iwl_mei_handle_sap_msg()
908 dev_err(&cldev->dev, \ in iwl_mei_handle_sap_msg()
946 dev_dbg(&cldev->dev, "Unsupported message: type %d, len %d\n", in iwl_mei_handle_sap_msg()
977 static void iwl_mei_handle_sap_data(struct mei_cl_device *cldev, in iwl_mei_handle_sap_data() argument
1001 dev_err(&cldev->dev, in iwl_mei_handle_sap_data()
1008 dev_err(&cldev->dev, in iwl_mei_handle_sap_data()
1016 dev_err(&cldev->dev, "Unsupported Rx data: type %d, len %d\n", in iwl_mei_handle_sap_data()
1051 static void iwl_mei_handle_sap_rx_cmd(struct mei_cl_device *cldev, in iwl_mei_handle_sap_rx_cmd() argument
1076 iwl_mei_handle_sap_msg(cldev, hdr); in iwl_mei_handle_sap_rx_cmd()
1082 dev_err(&cldev->dev, in iwl_mei_handle_sap_rx_cmd()
1088 static void iwl_mei_handle_sap_rx(struct mei_cl_device *cldev, in iwl_mei_handle_sap_rx() argument
1099 dev_err(&cldev->dev, in iwl_mei_handle_sap_rx()
1110 iwl_mei_handle_sap_data(cldev, q_head, q_sz, rd, wr, in iwl_mei_handle_sap_rx()
1113 iwl_mei_handle_sap_rx_cmd(cldev, q_head, q_sz, rd, wr, in iwl_mei_handle_sap_rx()
1120 static void iwl_mei_handle_check_shared_area(struct mei_cl_device *cldev) in iwl_mei_handle_check_shared_area() argument
1122 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_handle_check_shared_area()
1142 iwl_mei_handle_sap_rx(cldev, notif_q, q_head, NULL, q_sz); in iwl_mei_handle_check_shared_area()
1152 iwl_mei_handle_sap_rx(cldev, notif_q, q_head, &tx_skbs, q_sz); in iwl_mei_handle_check_shared_area()
1171 dev_err(&cldev->dev, "Can't Tx without a netdev\n"); in iwl_mei_handle_check_shared_area()
1187 static void iwl_mei_rx(struct mei_cl_device *cldev) in iwl_mei_rx() argument
1193 ret = mei_cldev_recv(cldev, (u8 *)&msg, sizeof(msg)); in iwl_mei_rx()
1195 dev_err(&cldev->dev, "failed to receive data: %zd\n", ret); in iwl_mei_rx()
1200 dev_err(&cldev->dev, "got an empty response\n"); in iwl_mei_rx()
1212 iwl_mei_handle_rx_start_ok(cldev, (void *)msg, ret); in iwl_mei_rx()
1215 iwl_mei_handle_check_shared_area(cldev); in iwl_mei_rx()
1218 dev_err(&cldev->dev, "got a RX notification: %d\n", in iwl_mei_rx()
1224 static int iwl_mei_send_start(struct mei_cl_device *cldev) in iwl_mei_send_start() argument
1226 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_send_start()
1238 ret = mei_cldev_send(cldev, (void *)&msg, sizeof(msg)); in iwl_mei_send_start()
1240 dev_err(&cldev->dev, in iwl_mei_send_start()
1249 static int iwl_mei_enable(struct mei_cl_device *cldev) in iwl_mei_enable() argument
1253 ret = mei_cldev_enable(cldev); in iwl_mei_enable()
1255 dev_err(&cldev->dev, "failed to enable the device: %d\n", ret); in iwl_mei_enable()
1259 ret = mei_cldev_register_rx_cb(cldev, iwl_mei_rx); in iwl_mei_enable()
1261 dev_err(&cldev->dev, in iwl_mei_enable()
1263 mei_cldev_disable(cldev); in iwl_mei_enable()
1346 ret = iwl_mei_send_sap_msg(mei->cldev, in iwl_mei_get_ownership()
1422 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); in iwl_mei_host_associated()
1451 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); in iwl_mei_host_disassociated()
1487 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); in iwl_mei_set_rfkill_state()
1516 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); in iwl_mei_set_nic_info()
1544 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); in iwl_mei_set_country_code()
1572 iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); in iwl_mei_set_power_limit()
1636 iwl_mei_send_sap_msg(mei->cldev, in iwl_mei_device_down()
1672 iwl_mei_send_sap_msg(mei->cldev, in iwl_mei_register()
1714 iwl_mei_send_sap_msg(mei->cldev, SAP_MSG_NOTIF_WIFIDR_DOWN); in iwl_mei_unregister_complete()
1804 static int iwl_mei_probe(struct mei_cl_device *cldev, in iwl_mei_probe() argument
1811 mei = devm_kzalloc(&cldev->dev, sizeof(*mei), GFP_KERNEL); in iwl_mei_probe()
1822 mei_cldev_set_drvdata(cldev, mei); in iwl_mei_probe()
1823 mei->cldev = cldev; in iwl_mei_probe()
1826 ret = iwl_mei_alloc_shared_mem(cldev); in iwl_mei_probe()
1838 dev_dbg(&cldev->dev, in iwl_mei_probe()
1846 dev_err(&cldev->dev, "Couldn't allocate the shared memory: %d\n", in iwl_mei_probe()
1853 ret = iwl_mei_enable(cldev); in iwl_mei_probe()
1864 ret = iwl_mei_send_start(cldev); in iwl_mei_probe()
1870 iwl_mei_global_cldev = cldev; in iwl_mei_probe()
1876 mei_cldev_disable(cldev); in iwl_mei_probe()
1878 iwl_mei_free_shared_mem(cldev); in iwl_mei_probe()
1880 mei_cldev_set_drvdata(cldev, NULL); in iwl_mei_probe()
1881 devm_kfree(&cldev->dev, mei); in iwl_mei_probe()
1888 static void iwl_mei_remove(struct mei_cl_device *cldev) in iwl_mei_remove() argument
1890 struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); in iwl_mei_remove()
1897 if (mei_cldev_enabled(cldev) && iwl_mei_cache.ops) in iwl_mei_remove()
1929 iwl_mei_send_sap_msg(mei->cldev, in iwl_mei_remove()
1945 dev_err(&mei->cldev->dev, in iwl_mei_remove()
1970 mei_cldev_disable(cldev); in iwl_mei_remove()
1993 iwl_mei_free_shared_mem(cldev); in iwl_mei_remove()
1997 mei_cldev_set_drvdata(cldev, NULL); in iwl_mei_remove()
2003 devm_kfree(&cldev->dev, mei); in iwl_mei_remove()