| /kernel/linux/linux-6.6/drivers/soc/qcom/ |
| D | qmi_interface.c | 16 #include <linux/soc/qcom/qmi.h> 18 static struct socket *qmi_sock_create(struct qmi_handle *qmi, 23 * @qmi: qmi handle 32 static void qmi_recv_new_server(struct qmi_handle *qmi, in qmi_recv_new_server() argument 36 struct qmi_ops *ops = &qmi->ops; in qmi_recv_new_server() 57 ret = ops->new_server(qmi, svc); in qmi_recv_new_server() 61 list_add(&svc->list_node, &qmi->lookup_results); in qmi_recv_new_server() 66 * @qmi: qmi handle 73 static void qmi_recv_del_server(struct qmi_handle *qmi, in qmi_recv_del_server() argument 76 struct qmi_ops *ops = &qmi->ops; in qmi_recv_del_server() [all …]
|
| D | qmi_encdec.c | 12 #include <linux/soc/qcom/qmi.h> 98 * qmi_calc_min_msg_len() - Calculate the minimum length of a QMI message 102 * Return: Expected minimum length of the QMI message or 0 on error. 283 * @out_buf: Buffer to hold the encoded QMI message. 427 * @buf_src: Buffer containing the elements in QMI wire format. 431 * This function decodes the "elem_len" number of elements in QMI wire format, 456 * @buf_src: Buffer containing the elements in QMI wire format. 462 * This function decodes the "elem_len" number of elements in QMI wire format, 504 * @buf_src: Buffer containing the elements in QMI wire format. 560 * Every element that got encoded in the QMI message will have a type [all …]
|
| /kernel/linux/linux-5.10/drivers/soc/qcom/ |
| D | qmi_interface.c | 15 #include <linux/soc/qcom/qmi.h> 17 static struct socket *qmi_sock_create(struct qmi_handle *qmi, 22 * @qmi: qmi handle 31 static void qmi_recv_new_server(struct qmi_handle *qmi, in qmi_recv_new_server() argument 35 struct qmi_ops *ops = &qmi->ops; in qmi_recv_new_server() 56 ret = ops->new_server(qmi, svc); in qmi_recv_new_server() 60 list_add(&svc->list_node, &qmi->lookup_results); in qmi_recv_new_server() 65 * @qmi: qmi handle 72 static void qmi_recv_del_server(struct qmi_handle *qmi, in qmi_recv_del_server() argument 75 struct qmi_ops *ops = &qmi->ops; in qmi_recv_del_server() [all …]
|
| D | qmi_encdec.c | 12 #include <linux/soc/qcom/qmi.h> 98 * qmi_calc_min_msg_len() - Calculate the minimum length of a QMI message 102 * Return: Expected minimum length of the QMI message or 0 on error. 283 * @out_buf: Buffer to hold the encoded QMI message. 427 * @buf_src: Buffer containing the elements in QMI wire format. 431 * This function decodes the "elem_len" number of elements in QMI wire format, 456 * @buf_src: Buffer containing the elements in QMI wire format. 462 * This function decodes the "elem_len" number of elements in QMI wire format, 504 * @buf_src: Buffer containing the elements in QMI wire format. 560 * Every element that got encoded in the QMI message will have a type [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/ath/ath10k/ |
| D | qmi.c | 32 static int ath10k_qmi_map_msa_permission(struct ath10k_qmi *qmi, in ath10k_qmi_map_msa_permission() argument 36 struct ath10k *ar = qmi->ar; in ath10k_qmi_map_msa_permission() 64 static int ath10k_qmi_unmap_msa_permission(struct ath10k_qmi *qmi, in ath10k_qmi_unmap_msa_permission() argument 68 struct ath10k *ar = qmi->ar; in ath10k_qmi_unmap_msa_permission() 88 static int ath10k_qmi_setup_msa_permissions(struct ath10k_qmi *qmi) in ath10k_qmi_setup_msa_permissions() argument 93 if (qmi->msa_fixed_perm) in ath10k_qmi_setup_msa_permissions() 96 for (i = 0; i < qmi->nr_mem_region; i++) { in ath10k_qmi_setup_msa_permissions() 97 ret = ath10k_qmi_map_msa_permission(qmi, &qmi->mem_region[i]); in ath10k_qmi_setup_msa_permissions() 106 ath10k_qmi_unmap_msa_permission(qmi, &qmi->mem_region[i]); in ath10k_qmi_setup_msa_permissions() 110 static void ath10k_qmi_remove_msa_permission(struct ath10k_qmi *qmi) in ath10k_qmi_remove_msa_permission() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireless/ath/ath10k/ |
| D | qmi.c | 26 static int ath10k_qmi_map_msa_permission(struct ath10k_qmi *qmi, in ath10k_qmi_map_msa_permission() argument 30 struct ath10k *ar = qmi->ar; in ath10k_qmi_map_msa_permission() 58 static int ath10k_qmi_unmap_msa_permission(struct ath10k_qmi *qmi, in ath10k_qmi_unmap_msa_permission() argument 62 struct ath10k *ar = qmi->ar; in ath10k_qmi_unmap_msa_permission() 82 static int ath10k_qmi_setup_msa_permissions(struct ath10k_qmi *qmi) in ath10k_qmi_setup_msa_permissions() argument 87 if (qmi->msa_fixed_perm) in ath10k_qmi_setup_msa_permissions() 90 for (i = 0; i < qmi->nr_mem_region; i++) { in ath10k_qmi_setup_msa_permissions() 91 ret = ath10k_qmi_map_msa_permission(qmi, &qmi->mem_region[i]); in ath10k_qmi_setup_msa_permissions() 100 ath10k_qmi_unmap_msa_permission(qmi, &qmi->mem_region[i]); in ath10k_qmi_setup_msa_permissions() 104 static void ath10k_qmi_remove_msa_permission(struct ath10k_qmi *qmi) in ath10k_qmi_remove_msa_permission() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireless/ath/ath11k/ |
| D | qmi.c | 8 #include "qmi.h" 1519 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath11k_qmi_host_cap_send() 1537 req.cal_done = ab->qmi.cal_done; in ath11k_qmi_host_cap_send() 1553 ret = qmi_txn_init(&ab->qmi.handle, &txn, in ath11k_qmi_host_cap_send() 1558 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_host_cap_send() 1586 struct qmi_handle *handle = &ab->qmi.handle; in ath11k_qmi_fw_ind_register_send() 1621 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_fw_ind_register_send() 1670 if (!ab->bus_params.fixed_mem_region && ab->qmi.target_mem_delayed) { in ath11k_qmi_respond_fw_mem_request() 1672 ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi delays mem_request %d\n", in ath11k_qmi_respond_fw_mem_request() 1673 ab->qmi.mem_seg_count); in ath11k_qmi_respond_fw_mem_request() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/ath/ath11k/ |
| D | qmi.c | 9 #include "qmi.h" 1719 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath11k_qmi_host_cap_send() 1737 req.cal_done = ab->qmi.cal_done; in ath11k_qmi_host_cap_send() 1760 ret = qmi_txn_init(&ab->qmi.handle, &txn, in ath11k_qmi_host_cap_send() 1765 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_host_cap_send() 1794 struct qmi_handle *handle = &ab->qmi.handle; in ath11k_qmi_fw_ind_register_send() 1820 /* WCN6750 doesn't request for DDR memory via QMI, in ath11k_qmi_fw_ind_register_send() 1838 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_fw_ind_register_send() 1890 ab->qmi.target_mem_delayed) { in ath11k_qmi_respond_fw_mem_request() 1893 ab->qmi.mem_seg_count); in ath11k_qmi_respond_fw_mem_request() [all …]
|
| /kernel/linux/linux-5.10/include/linux/soc/qcom/ |
| D | qmi.h | 19 * qmi_header - wireformat header of QMI messages 59 * struct qmi_elem_info - describes how to encode a single QMI element 64 * @tlv_type: QMI message specific type to identify which element 142 * override the usual QMI message handler 147 int (*new_server)(struct qmi_handle *qmi, struct qmi_service *svc); 148 void (*del_server)(struct qmi_handle *qmi, struct qmi_service *svc); 149 void (*net_reset)(struct qmi_handle *qmi); 150 void (*msg_handler)(struct qmi_handle *qmi, struct sockaddr_qrtr *sq, 152 void (*bye)(struct qmi_handle *qmi, unsigned int node); 153 void (*del_client)(struct qmi_handle *qmi, [all …]
|
| /kernel/linux/linux-6.6/include/linux/soc/qcom/ |
| D | qmi.h | 19 * struct qmi_header - wireformat header of QMI messages 59 * struct qmi_elem_info - describes how to encode a single QMI element 64 * @tlv_type: QMI message specific type to identify which element 142 * override the usual QMI message handler 147 int (*new_server)(struct qmi_handle *qmi, struct qmi_service *svc); 148 void (*del_server)(struct qmi_handle *qmi, struct qmi_service *svc); 149 void (*net_reset)(struct qmi_handle *qmi); 150 void (*msg_handler)(struct qmi_handle *qmi, struct sockaddr_qrtr *sq, 152 void (*bye)(struct qmi_handle *qmi, unsigned int node); 153 void (*del_client)(struct qmi_handle *qmi, [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/ath/ath12k/ |
| D | qmi.c | 9 #include "qmi.h" 1932 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath12k_qmi_host_cap_send() 1943 req.cal_done = ab->qmi.cal_done; in ath12k_qmi_host_cap_send() 1970 ret = qmi_txn_init(&ab->qmi.handle, &txn, in ath12k_qmi_host_cap_send() 1975 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath12k_qmi_host_cap_send() 2004 struct qmi_handle *handle = &ab->qmi.handle; in ath12k_qmi_fw_ind_register_send() 2039 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath12k_qmi_fw_ind_register_send() 2089 if (ab->qmi.target_mem_delayed) { in ath12k_qmi_respond_fw_mem_request() 2091 ath12k_dbg(ab, ATH12K_DBG_QMI, "qmi delays mem_request %d\n", in ath12k_qmi_respond_fw_mem_request() 2092 ab->qmi.mem_seg_count); in ath12k_qmi_respond_fw_mem_request() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ipa/ |
| D | ipa_qmi.c | 11 #include <linux/soc/qcom/qmi.h> 21 * DOC: AP/Modem QMI Handshake 25 * driver (this code) uses two QMI handles (endpoints) for this; a client 32 * The QMI service on the modem expects to receive an INIT_DRIVER request from 53 * - Whenever the AP learns the modem has booted and its IPA QMI service 86 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_init_complete() 87 struct qmi_handle *qmi = &ipa_qmi->server_handle; in ipa_server_init_complete() local 95 ret = qmi_send_indication(qmi, sq, IPA_QMI_INIT_COMPLETE, in ipa_server_init_complete() 148 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_qmi_ready() 154 /* All QMI clients from the modem node are gone (modem shut down or crashed). */ [all …]
|
| D | ipa_qmi.h | 10 #include <linux/soc/qcom/qmi.h> 15 * struct ipa_qmi - QMI state associated with an IPA 16 * @client_handle: Used to send an QMI requests to the modem 17 * @server_handle: Used to handle QMI requests from the modem 18 * @modem_sq: QMAP socket address for the modem QMI server 43 * ipa_qmi_setup() - Set up for QMI message exchange 47 * of QMI messages that perform a "handshake" between the AP and modem. 48 * When the modem QMI server announces its presence, an AP request message 54 * modem's QMI server is started again. 59 * ipa_qmi_teardown() - Tear down IPA QMI handles
|
| /kernel/linux/linux-5.10/drivers/net/ipa/ |
| D | ipa_qmi.c | 11 #include <linux/soc/qcom/qmi.h> 21 * DOC: AP/Modem QMI Handshake 25 * driver (this code) uses two QMI handles (endpoints) for this; a client 32 * The QMI service on the modem expects to receive an INIT_DRIVER request from 53 * - Whenever the AP learns the modem has booted and its IPA QMI service 86 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_init_complete() 87 struct qmi_handle *qmi = &ipa_qmi->server_handle; in ipa_server_init_complete() local 95 ret = qmi_send_indication(qmi, sq, IPA_QMI_INIT_COMPLETE, in ipa_server_init_complete() 128 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_qmi_ready() 148 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_qmi_ready() [all …]
|
| D | ipa_qmi.h | 10 #include <linux/soc/qcom/qmi.h> 15 * struct ipa_qmi - QMI state associated with an IPA 16 * @client_handle - used to send an QMI requests to the modem 17 * @server_handle - used to handle QMI requests from the modem 18 * @initialized - whether QMI initialization has completed
|
| D | ipa_qmi_msg.c | 7 #include <linux/soc/qcom/qmi.h> 11 /* QMI message structure definition for struct ipa_indication_register_req */ 78 /* QMI message structure definition for struct ipa_indication_register_rsp */ 96 /* QMI message structure definition for struct ipa_driver_init_complete_req */ 113 /* QMI message structure definition for struct ipa_driver_init_complete_rsp */ 131 /* QMI message structure definition for struct ipa_init_complete_ind */ 149 /* QMI message structure definition for struct ipa_mem_bounds */ 170 /* QMI message structure definition for struct ipa_mem_array */ 191 /* QMI message structure definition for struct ipa_mem_range */ 212 /* QMI message structure definition for struct ipa_init_modem_driver_req */ [all …]
|
| /kernel/linux/linux-5.10/drivers/slimbus/ |
| D | qcom-ngd-ctrl.c | 18 #include <linux/soc/qcom/qmi.h> 46 /* Slimbus QMI service */ 61 /* QMI response timeout of 500ms */ 119 struct qmi_handle qmi; member 148 struct qcom_slim_ngd_qmi qmi; member 344 rc = qmi_txn_init(ctrl->qmi.handle, &txn, in qcom_slim_qmi_send_select_inst_req() 347 dev_err(ctrl->dev, "QMI TXN init fail: %d\n", rc); in qcom_slim_qmi_send_select_inst_req() 351 rc = qmi_send_request(ctrl->qmi.handle, NULL, &txn, in qcom_slim_qmi_send_select_inst_req() 356 dev_err(ctrl->dev, "QMI send req fail %d\n", rc); in qcom_slim_qmi_send_select_inst_req() 363 dev_err(ctrl->dev, "QMI TXN wait fail: %d\n", rc); in qcom_slim_qmi_send_select_inst_req() [all …]
|
| /kernel/linux/linux-5.10/drivers/remoteproc/ |
| D | qcom_sysmon.c | 49 struct qmi_handle qmi; member 282 static void sysmon_ind_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq, in sysmon_ind_cb() argument 285 struct qcom_sysmon *sysmon = container_of(qmi, struct qcom_sysmon, qmi); in sysmon_ind_cb() 302 * ssctl_request_shutdown() - request shutdown via SSCTL QMI service 313 ret = qmi_txn_init(&sysmon->qmi, &txn, ssctl_shutdown_resp_ei, &resp); in ssctl_request_shutdown() 315 dev_err(sysmon->dev, "failed to allocate QMI txn\n"); in ssctl_request_shutdown() 319 ret = qmi_send_request(&sysmon->qmi, &sysmon->ssctl, &txn, in ssctl_request_shutdown() 329 dev_err(sysmon->dev, "failed receiving QMI response\n"); in ssctl_request_shutdown() 361 ret = qmi_txn_init(&sysmon->qmi, &txn, ssctl_subsys_event_resp_ei, &resp); in ssctl_send_event() 363 dev_err(sysmon->dev, "failed to allocate QMI txn\n"); in ssctl_send_event() [all …]
|
| /kernel/linux/linux-6.6/drivers/slimbus/ |
| D | qcom-ngd-ctrl.c | 21 #include <linux/soc/qcom/qmi.h> 50 /* Slimbus QMI service */ 65 /* QMI response timeout of 500ms */ 123 struct qmi_handle qmi; member 152 struct qcom_slim_ngd_qmi qmi; member 355 rc = qmi_txn_init(ctrl->qmi.handle, &txn, in qcom_slim_qmi_send_select_inst_req() 358 dev_err(ctrl->dev, "QMI TXN init fail: %d\n", rc); in qcom_slim_qmi_send_select_inst_req() 362 rc = qmi_send_request(ctrl->qmi.handle, NULL, &txn, in qcom_slim_qmi_send_select_inst_req() 367 dev_err(ctrl->dev, "QMI send req fail %d\n", rc); in qcom_slim_qmi_send_select_inst_req() 374 dev_err(ctrl->dev, "QMI TXN wait fail: %d\n", rc); in qcom_slim_qmi_send_select_inst_req() [all …]
|
| /kernel/linux/linux-5.10/samples/qmi/ |
| D | qmi_sample_client.c | 3 * Sample in-kernel QMI client driver 19 #include <linux/soc/qcom/qmi.h> 294 * This function allows user space to send out a ping_pong QMI encoded message 304 struct qmi_handle *qmi = file->private_data; in ping_write() local 311 ret = qmi_txn_init(qmi, &txn, NULL, NULL); in ping_write() 315 ret = qmi_send_request(qmi, NULL, &txn, in ping_write() 336 static void ping_pong_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq, in ping_pong_cb() argument 361 * This function allows user space to send out a data QMI encoded message to 363 * transaction. It serves as an example of how to have the QMI helpers decode a 372 struct qmi_handle *qmi = file->private_data; in data_write() local [all …]
|
| /kernel/linux/linux-6.6/samples/qmi/ |
| D | qmi_sample_client.c | 3 * Sample in-kernel QMI client driver 19 #include <linux/soc/qcom/qmi.h> 294 * This function allows user space to send out a ping_pong QMI encoded message 304 struct qmi_handle *qmi = file->private_data; in ping_write() local 311 ret = qmi_txn_init(qmi, &txn, NULL, NULL); in ping_write() 315 ret = qmi_send_request(qmi, NULL, &txn, in ping_write() 336 static void ping_pong_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq, in ping_pong_cb() argument 361 * This function allows user space to send out a data QMI encoded message to 363 * transaction. It serves as an example of how to have the QMI helpers decode a 372 struct qmi_handle *qmi = file->private_data; in data_write() local [all …]
|
| /kernel/linux/linux-6.6/drivers/remoteproc/ |
| D | qcom_sysmon.c | 49 struct qmi_handle qmi; member 289 static void sysmon_ind_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq, in sysmon_ind_cb() argument 292 struct qcom_sysmon *sysmon = container_of(qmi, struct qcom_sysmon, qmi); in sysmon_ind_cb() 325 * ssctl_request_shutdown() - request shutdown via SSCTL QMI service 339 ret = qmi_txn_init(&sysmon->qmi, &txn, ssctl_shutdown_resp_ei, &resp); in ssctl_request_shutdown() 341 dev_err(sysmon->dev, "failed to allocate QMI txn\n"); in ssctl_request_shutdown() 345 ret = qmi_send_request(&sysmon->qmi, &sysmon->ssctl, &txn, in ssctl_request_shutdown() 383 ret = qmi_txn_init(&sysmon->qmi, &txn, ssctl_subsys_event_resp_ei, &resp); in ssctl_send_event() 385 dev_err(sysmon->dev, "failed to allocate QMI txn\n"); in ssctl_send_event() 396 ret = qmi_send_request(&sysmon->qmi, &sysmon->ssctl, &txn, in ssctl_send_event() [all …]
|
| /kernel/linux/linux-6.6/Documentation/ABI/testing/ |
| D | sysfs-class-net-qmi | 1 What: /sys/class/net/<iface>/qmi/raw_ip 20 through the delegation of the QMI protocol. Userspace 25 What: /sys/class/net/<iface>/qmi/add_mux 40 using the proper QMI protocol requests. 42 What: /sys/class/net/<iface>/qmi/del_mux 62 What: /sys/class/net/<iface>/qmi/pass_through
|
| /kernel/linux/linux-5.10/Documentation/ABI/testing/ |
| D | sysfs-class-net-qmi | 1 What: /sys/class/net/<iface>/qmi/raw_ip 20 through the delegation of the QMI protocol. Userspace 25 What: /sys/class/net/<iface>/qmi/add_mux 40 using the proper QMI protocol requests. 42 What: /sys/class/net/<iface>/qmi/del_mux
|
| /kernel/linux/linux-6.6/drivers/net/wwan/ |
| D | Kconfig | 44 control protocols/ports to userspace, including AT, MBIM, QMI, DIAG 70 MSM8916 or MSM8974. The connection can be established via QMI/AT from 82 different modem protocols/ports to userspace, including AT and QMI. 87 e.g. for AT and QMI on Qualcomm MSM8916 or MSM8974. Note that many 89 this driver but the QMI messages can only be sent through
|