Home
last modified time | relevance | path

Searched full:qmi (Results 1 – 25 of 64) sorted by relevance

123

/Linux-v6.6/drivers/soc/qcom/
Dqmi_interface.c16 #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 …]
Dqmi_encdec.c12 #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 …]
Dpdr_interface.c72 static int pdr_locator_new_server(struct qmi_handle *qmi, in pdr_locator_new_server() argument
75 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_locator_new_server()
79 /* Create a local client port for QMI communication */ in pdr_locator_new_server()
99 static void pdr_locator_del_server(struct qmi_handle *qmi, in pdr_locator_del_server() argument
102 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_locator_del_server()
196 static int pdr_notifier_new_server(struct qmi_handle *qmi, in pdr_notifier_new_server() argument
199 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_notifier_new_server()
220 static void pdr_notifier_del_server(struct qmi_handle *qmi, in pdr_notifier_del_server() argument
223 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_notifier_del_server()
299 static void pdr_indication_cb(struct qmi_handle *qmi, in pdr_indication_cb() argument
[all …]
/Linux-v6.6/drivers/net/wireless/ath/ath10k/
Dqmi.c31 static int ath10k_qmi_map_msa_permission(struct ath10k_qmi *qmi, in ath10k_qmi_map_msa_permission() argument
35 struct ath10k *ar = qmi->ar; in ath10k_qmi_map_msa_permission()
63 static int ath10k_qmi_unmap_msa_permission(struct ath10k_qmi *qmi, in ath10k_qmi_unmap_msa_permission() argument
67 struct ath10k *ar = qmi->ar; in ath10k_qmi_unmap_msa_permission()
87 static int ath10k_qmi_setup_msa_permissions(struct ath10k_qmi *qmi) in ath10k_qmi_setup_msa_permissions() argument
92 if (qmi->msa_fixed_perm) in ath10k_qmi_setup_msa_permissions()
95 for (i = 0; i < qmi->nr_mem_region; i++) { in ath10k_qmi_setup_msa_permissions()
96 ret = ath10k_qmi_map_msa_permission(qmi, &qmi->mem_region[i]); in ath10k_qmi_setup_msa_permissions()
105 ath10k_qmi_unmap_msa_permission(qmi, &qmi->mem_region[i]); in ath10k_qmi_setup_msa_permissions()
109 static void ath10k_qmi_remove_msa_permission(struct ath10k_qmi *qmi) in ath10k_qmi_remove_msa_permission() argument
[all …]
Dsnoc.h13 #include "qmi.h"
80 struct ath10k_qmi *qmi; member
Dqmi.h8 #include <linux/soc/qcom/qmi.h>
98 spinlock_t event_lock; /* spinlock for qmi event list */
/Linux-v6.6/drivers/net/wireless/ath/ath11k/
Dqmi.c9 #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 …]
Dcore.c883 if (ab->qmi.target.bdf_ext[0] != '\0') in ath11k_core_check_cc_code_bdfext()
931 strlen(smbios->bdf_ext), sizeof(ab->qmi.target.bdf_ext)); in ath11k_core_check_cc_code_bdfext()
941 copied = strscpy(ab->qmi.target.bdf_ext, smbios->bdf_ext + strlen(magic), in ath11k_core_check_cc_code_bdfext()
942 sizeof(ab->qmi.target.bdf_ext)); in ath11k_core_check_cc_code_bdfext()
951 ATH11K_SMBIOS_BDF_EXT_TYPE, ab->qmi.target.bdf_ext); in ath11k_core_check_cc_code_bdfext()
956 ab->qmi.target.bdf_ext[0] = '\0'; in ath11k_core_check_smbios()
959 if (ab->qmi.target.bdf_ext[0] == '\0') in ath11k_core_check_smbios()
967 size_t max_len = sizeof(ab->qmi.target.bdf_ext); in ath11k_core_check_dt()
980 if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0) in ath11k_core_check_dt()
992 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in __ath11k_core_create_board_name()
[all …]
Dce.h68 * Passed from Host to Target through QMI message and must be in
79 * Passed from Host to Target through QMI message during startup (one per CE).
/Linux-v6.6/drivers/net/wireless/ath/ath12k/
Dqmi.c9 #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()
2003 struct qmi_handle *handle = &ab->qmi.handle; in ath12k_qmi_fw_ind_register_send()
2038 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath12k_qmi_fw_ind_register_send()
2087 if (ab->qmi.target_mem_delayed) { in ath12k_qmi_respond_fw_mem_request()
2089 ath12k_dbg(ab, ATH12K_DBG_QMI, "qmi delays mem_request %d\n", in ath12k_qmi_respond_fw_mem_request()
2090 ab->qmi.mem_seg_count); in ath12k_qmi_respond_fw_mem_request()
[all …]
Dcore.c89 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in ath12k_core_create_board_name()
92 if (ab->qmi.target.bdf_ext[0] != '\0') in ath12k_core_create_board_name()
94 ab->qmi.target.bdf_ext); in ath12k_core_create_board_name()
97 "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s", in ath12k_core_create_board_name()
99 ab->qmi.target.chip_id, in ath12k_core_create_board_name()
100 ab->qmi.target.board_id, variant); in ath12k_core_create_board_name()
386 ath12k_err(ab, "failed to initialize qmi :%d\n", ret); in ath12k_core_soc_create()
559 ath12k_ce_get_shadow_config(ab, &ab->qmi.ce_cfg.shadow_reg_v3, in ath12k_core_start_firmware()
560 &ab->qmi.ce_cfg.shadow_reg_v3_len); in ath12k_core_start_firmware()
/Linux-v6.6/include/linux/soc/qcom/
Dqmi.h19 * 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 …]
/Linux-v6.6/drivers/net/ipa/
Dipa_qmi.c11 #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 …]
Dipa_qmi.h10 #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
Dipa_qmi_msg.c7 #include <linux/soc/qcom/qmi.h>
11 /* QMI message structure definition for struct ipa_indication_register_req */
118 /* QMI message structure definition for struct ipa_indication_register_rsp */
136 /* QMI message structure definition for struct ipa_driver_init_complete_req */
153 /* QMI message structure definition for struct ipa_driver_init_complete_rsp */
171 /* QMI message structure definition for struct ipa_init_complete_ind */
189 /* QMI message structure definition for struct ipa_mem_bounds */
210 /* QMI message structure definition for struct ipa_mem_array */
231 /* QMI message structure definition for struct ipa_mem_range */
252 /* QMI message structure definition for struct ipa_init_modem_driver_req */
[all …]
Dipa_qmi_msg.h12 #include <linux/soc/qcom/qmi.h>
14 /* Request/response/indication QMI message ids used for IPA. Receiving
54 * a standard QMI response.
66 * of a standard QMI response.
73 * only of a standard QMI response.
221 * QMI response, but contains other information as well. Currently we
Dipa.h77 * @qmi: QMI information
137 struct ipa_qmi qmi; member
/Linux-v6.6/drivers/slimbus/
Dqcom-ngd-ctrl.c21 #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 …]
/Linux-v6.6/samples/qmi/
Dqmi_sample_client.c3 * 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 …]
/Linux-v6.6/drivers/remoteproc/
Dqcom_sysmon.c49 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 …]
/Linux-v6.6/Documentation/ABI/testing/
Dsysfs-class-net-qmi1 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
/Linux-v6.6/drivers/net/wwan/
DKconfig44 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
/Linux-v6.6/drivers/usb/serial/
Dqcserial.c219 /* Don't claim the QMI/net interface */ in handle_quectel_ec20()
272 * Composite mode; don't bind to the QMI/net interface as that in qcprobe()
283 * 3: QMI/net in qcprobe()
308 * 0: QMI/net in qcprobe()
321 /* Don't claim the QMI/net interface */ in qcprobe()
346 * 8: QMI/net in qcprobe()
377 /* QMI combined (qmi_wwan) */ in qcprobe()
381 /* QMI data (qmi_wwan) */ in qcprobe()
385 /* QMI control (qmi_wwan) */ in qcprobe()
/Linux-v6.6/samples/
DKconfig114 tristate "Build qmi client sample -- loadable modules only"
120 Build an QMI client sample driver, which demonstrates how to
121 communicate with a remote QRTR service, using QMI encoded messages.
/Linux-v6.6/drivers/net/usb/
Dqmi_wwan.c26 * specific management protocol called Qualcomm MSM Interface (QMI) -
30 * QMI is wrapped in CDC, using CDC encapsulated commands on the
40 * Handling a protocol like QMI is out of the scope for any driver.
534 .name = "qmi",
806 * effect as clearing DTR. The device will not respond to QMI in qmi_wwan_bind()
815 * MDM9x30 is the first QMI chipset with USB3 support. Abuse in qmi_wwan_bind()
931 .description = "WWAN/QMI device",
940 .description = "WWAN/QMI device",
951 /* map QMI/wwan function by a fixed interface number */
961 /* Gobi 1000 QMI/wwan interface number is 3 according to qcserial */
[all …]

123