| /linux/drivers/soc/qcom/ |
| H A 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 …]
|
| H A 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. 437 * @buf_src: Buffer containing the elements in QMI wire format. 441 * This function decodes the "elem_len" number of elements in QMI wire format, 466 * @buf_src: Buffer containing the elements in QMI wire format. 472 * This function decodes the "elem_len" number of elements in QMI wire format, 514 * @buf_src: Buffer containing the elements in QMI wire format. 579 * Every element that got encoded in the QMI message will have a type [all …]
|
| H A D | pdr_interface.c | 73 static int pdr_locator_new_server(struct qmi_handle *qmi, in pdr_locator_new_server() argument 76 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_locator_new_server() 80 /* Create a local client port for QMI communication */ in pdr_locator_new_server() 94 static void pdr_locator_del_server(struct qmi_handle *qmi, in pdr_locator_del_server() argument 97 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_locator_del_server() 191 static int pdr_notifier_new_server(struct qmi_handle *qmi, in pdr_notifier_new_server() argument 194 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_notifier_new_server() 215 static void pdr_notifier_del_server(struct qmi_handle *qmi, in pdr_notifier_del_server() argument 218 struct pdr_handle *pdr = container_of(qmi, struct pdr_handle, in pdr_notifier_del_server() 294 static void pdr_indication_cb(struct qmi_handle *qmi, in pdr_indication_cb() argument [all …]
|
| H A D | qcom_pd_mapper.c | 15 #include <linux/soc/qcom/qmi.h> 149 static void qcom_pdm_get_domain_list(struct qmi_handle *qmi, in qcom_pdm_get_domain_list() argument 154 struct qcom_pdm_data *data = container_of(qmi, struct qcom_pdm_data, handle); in qcom_pdm_get_domain_list() 204 ret = qmi_send_response(qmi, sq, txn, SERVREG_GET_DOMAIN_LIST_REQ, in qcom_pdm_get_domain_list() 215 static void qcom_pdm_pfr(struct qmi_handle *qmi, in qcom_pdm_pfr() argument 229 ret = qmi_send_response(qmi, sq, txn, SERVREG_LOC_PFR_REQ, in qcom_pdm_pfr()
|
| /linux/drivers/net/wireless/ath/ath10k/ |
| H A 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, in ath10k_qmi_setup_msa_permissions() 110 ath10k_qmi_remove_msa_permission(struct ath10k_qmi * qmi) ath10k_qmi_remove_msa_permission() argument 121 ath10k_qmi_msa_mem_info_send_sync_msg(struct ath10k_qmi * qmi) ath10k_qmi_msa_mem_info_send_sync_msg() argument 199 ath10k_qmi_msa_ready_send_sync_msg(struct ath10k_qmi * qmi) ath10k_qmi_msa_ready_send_sync_msg() argument 238 ath10k_qmi_bdf_dnld_send_sync(struct ath10k_qmi * qmi) ath10k_qmi_bdf_dnld_send_sync() argument 324 ath10k_qmi_send_cal_report_req(struct ath10k_qmi * qmi) ath10k_qmi_send_cal_report_req() argument 384 struct ath10k_qmi *qmi = ar_snoc->qmi; ath10k_qmi_mode_send_sync_msg() local 433 struct ath10k_qmi *qmi = ar_snoc->qmi; ath10k_qmi_cfg_send_sync_msg() local 572 ath10k_qmi_cap_send_sync_msg(struct ath10k_qmi * qmi) ath10k_qmi_cap_send_sync_msg() argument 653 ath10k_qmi_host_cap_send_sync(struct ath10k_qmi * qmi) ath10k_qmi_host_cap_send_sync() argument 709 struct ath10k_qmi *qmi = ar_snoc->qmi; ath10k_qmi_set_fw_log_mode() local 751 ath10k_qmi_ind_register_send_sync_msg(struct ath10k_qmi * qmi) ath10k_qmi_ind_register_send_sync_msg() argument 808 ath10k_qmi_event_server_arrive(struct ath10k_qmi * qmi) ath10k_qmi_event_server_arrive() argument 855 ath10k_qmi_fetch_board_file(struct ath10k_qmi * qmi) ath10k_qmi_fetch_board_file() argument 874 ath10k_qmi_driver_event_post(struct ath10k_qmi * qmi,enum ath10k_qmi_driver_event_type type,void * data) ath10k_qmi_driver_event_post() argument 896 ath10k_qmi_event_server_exit(struct ath10k_qmi * qmi) ath10k_qmi_event_server_exit() argument 911 ath10k_qmi_event_msa_ready(struct ath10k_qmi * qmi) ath10k_qmi_event_msa_ready() argument 929 ath10k_qmi_event_fw_ready_ind(struct ath10k_qmi * qmi) ath10k_qmi_event_fw_ready_ind() argument 943 struct ath10k_qmi *qmi = container_of(qmi_hdl, struct ath10k_qmi, qmi_hdl); ath10k_qmi_fw_ready_ind() local 952 struct ath10k_qmi *qmi = container_of(qmi_hdl, struct ath10k_qmi, qmi_hdl); ath10k_qmi_msa_ready_ind() local 978 struct ath10k_qmi *qmi = container_of(qmi_hdl, struct ath10k_qmi, qmi_hdl); ath10k_qmi_new_server() local 1005 struct ath10k_qmi *qmi = ath10k_qmi_del_server() local 1028 struct ath10k_qmi *qmi = container_of(work, struct ath10k_qmi, ath10k_qmi_driver_event_work() local 1075 struct ath10k_qmi *qmi; ath10k_qmi_init() local 1130 struct ath10k_qmi *qmi = ar_snoc->qmi; ath10k_qmi_deinit() local [all...] |
| H A D | snoc.h | 13 #include "qmi.h" 80 struct ath10k_qmi *qmi; member
|
| H A D | qmi.h | 8 #include <linux/soc/qcom/qmi.h> 98 spinlock_t event_lock; /* spinlock for qmi event list */
|
| /linux/include/linux/soc/qcom/ |
| H A 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 …]
|
| /linux/drivers/net/ipa/ |
| H A D | ipa_qmi.c | 17 * DOC: AP/Modem QMI Handshake 21 * driver (this code) uses two QMI handles (endpoints) for this; a client 28 * The QMI service on the modem expects to receive an INIT_DRIVER request from 49 * - Whenever the AP learns the modem has booted and its IPA QMI service 82 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_init_complete() 83 struct qmi_handle *qmi = &ipa_qmi->server_handle; in ipa_server_init_complete() local 91 ret = qmi_send_indication(qmi, sq, IPA_QMI_INIT_COMPLETE, in ipa_server_init_complete() 144 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_qmi_ready() 150 /* All QMI clients from the modem node are gone (modem shut down or crashed). */ 151 static void ipa_server_bye(struct qmi_handle *qmi, unsigned int node) in ipa_server_bye() argument [all …]
|
| H A D | ipa_qmi.h | 12 #include <linux/soc/qcom/qmi.h> 17 * struct ipa_qmi - QMI state associated with an IPA 18 * @client_handle: Used to send an QMI requests to the modem 19 * @server_handle: Used to handle QMI requests from the modem 20 * @modem_sq: QMAP socket address for the modem QMI server 45 * ipa_qmi_setup() - Set up for QMI message exchange 49 * of QMI messages that perform a "handshake" between the AP and modem. 50 * When the modem QMI server announces its presence, an AP request message 56 * modem's QMI server is started again. 61 * ipa_qmi_teardown() - Tear down IPA QMI handles
|
| H A D | ipa_qmi_msg.c | 8 #include <linux/soc/qcom/qmi.h> 12 /* QMI message structure definition for struct ipa_indication_register_req */ 119 /* QMI message structure definition for struct ipa_indication_register_rsp */ 137 /* QMI message structure definition for struct ipa_driver_init_complete_req */ 154 /* QMI message structure definition for struct ipa_driver_init_complete_rsp */ 172 /* QMI message structure definition for struct ipa_init_complete_ind */ 190 /* QMI message structure definition for struct ipa_mem_bounds */ 211 /* QMI message structure definition for struct ipa_mem_array */ 232 /* QMI message structure definition for struct ipa_mem_range */ 253 /* QMI message structure definition for struct ipa_init_modem_driver_req */ [all …]
|
| H A D | ipa_qmi_msg.h | 13 #include <linux/soc/qcom/qmi.h> 15 /* Request/response/indication QMI message ids used for IPA. Receiving 55 * a standard QMI response. 67 * of a standard QMI response. 74 * only of a standard QMI response. 222 * QMI response, but contains other information as well. Currently we
|
| H A D | ipa.h | 71 * @qmi: QMI information 131 struct ipa_qmi qmi; member
|
| /linux/drivers/slimbus/ |
| H A D | qcom-ngd-ctrl.c | 21 #include <linux/soc/qcom/qmi.h> 50 /* Slimbus QMI service */ 65 /* QMI response timeout of 500ms */ 122 struct qmi_handle qmi; member 151 struct qcom_slim_ngd_qmi qmi; member 354 rc = qmi_txn_init(ctrl->qmi.handle, &txn, in qcom_slim_qmi_send_select_inst_req() 357 dev_err(ctrl->dev, "QMI TXN init fail: %d\n", rc); in qcom_slim_qmi_send_select_inst_req() 361 rc = qmi_send_request(ctrl->qmi.handle, NULL, &txn, in qcom_slim_qmi_send_select_inst_req() 366 dev_err(ctrl->dev, "QMI send req fail %d\n", rc); in qcom_slim_qmi_send_select_inst_req() 373 dev_err(ctrl->dev, "QMI TX in qcom_slim_qmi_send_select_inst_req() 1367 struct qcom_slim_ngd_qmi *qmi = qcom_slim_ngd_qmi_new_server() local 1384 struct qcom_slim_ngd_qmi *qmi = qcom_slim_ngd_qmi_del_server() local 1401 struct qcom_slim_ngd_qmi *qmi = &ctrl->qmi; qcom_slim_ngd_qmi_svc_event_init() local 1420 qcom_slim_ngd_qmi_svc_event_deinit(struct qcom_slim_ngd_qmi * qmi) qcom_slim_ngd_qmi_svc_event_deinit() argument [all...] |
| /linux/samples/qmi/ |
| H A 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 in data_write() local 444 struct qmi_handle qmi; global() member 533 qmi_sample_new_server(struct qmi_handle * qmi,struct qmi_service * service) qmi_sample_new_server() argument 562 qmi_sample_del_server(struct qmi_handle * qmi,struct qmi_service * service) qmi_sample_del_server() argument [all...] |
| /linux/Documentation/ABI/testing/ |
| H A 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
|
| /linux/sound/usb/qcom/ |
| H A D | qc_audio_offload.c | 14 #include <linux/soc/qcom/qmi.h> 291 /* maps audio format received over QMI to asound.h based pcm format */ 343 * Sends QMI disconnect indication message, assumes chip->mutex and qdev_mutex 358 dev_dbg(uaudio_qdev->data->dev, "sending qmi indication suspend\n"); in uaudio_send_disconnect_ind() 370 "qmi send failed with err: %d\n", ret); in uaudio_send_disconnect_ind() 747 /* QMI service disconnect handlers */ 841 * qmi_bye_cb() - qmi bye message callback 842 * @handle: QMI handle 845 * This callback is invoked when the QMI bye control message is received 846 * from the QMI client. Handle the message accordingly by ensuring that [all …]
|
| H A D | Makefile | 1 snd-usb-audio-qmi-y := usb_audio_qmi_v01.o qc_audio_offload.o 2 snd-usb-audio-qmi-y += mixer_usb_offload.o 3 obj-$(CONFIG_SND_USB_AUDIO_QMI) += snd-usb-audio-qmi.o
|
| /linux/drivers/net/wwan/ |
| H A 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
|
| /linux/drivers/net/wireless/ath/ath11k/ |
| H A D | pci.c | 20 #include "qmi.h" 396 struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; in ath11k_pci_msi_config() 403 ab->qmi.service_ins_id = ab->hw_params.qmi_service_ins_id; in ath11k_pci_msi_config() 669 for (i = 0; i < ab->qmi.mem_seg_count; i++) { in ath11k_pci_coredump_calculate_size() 670 mem_type = ath11k_coredump_get_dump_type(ab->qmi.target_mem[i].type); in ath11k_pci_coredump_calculate_size() 678 ab->qmi.target_mem[i].type); in ath11k_pci_coredump_calculate_size() 682 if (!ab->qmi.target_mem[i].anyaddr) 685 dump_seg_sz[mem_type] += ab->qmi.target_mem[i].size; in ath11k_pci_coredump_download() 738 file_data->qrtr_id = cpu_to_le32(ab_pci->ab->qmi.service_ins_id); in ath11k_pci_coredump_download() 784 for (i = 0; i < ab->qmi in ath11k_pci_coredump_download() [all...] |
| H A D | core.c | 1319 if (ab->qmi.target.bdf_ext[0] != '\0') in ath11k_core_check_cc_code_bdfext() 1367 strlen(smbios->bdf_ext), sizeof(ab->qmi.target.bdf_ext)); in ath11k_core_check_cc_code_bdfext() 1377 copied = strscpy(ab->qmi.target.bdf_ext, smbios->bdf_ext + strlen(magic), in ath11k_core_check_cc_code_bdfext() 1378 sizeof(ab->qmi.target.bdf_ext)); in ath11k_core_check_cc_code_bdfext() 1387 ATH11K_SMBIOS_BDF_EXT_TYPE, ab->qmi.target.bdf_ext); in ath11k_core_check_cc_code_bdfext() 1392 ab->qmi.target.bdf_ext[0] = '\0'; in ath11k_core_check_smbios() 1395 if (ab->qmi.target.bdf_ext[0] == '\0') in ath11k_core_check_smbios() 1403 size_t max_len = sizeof(ab->qmi.target.bdf_ext); in ath11k_core_check_dt() 1419 if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0) in ath11k_core_check_dt() 1437 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in __ath11k_core_create_board_name() [all …]
|
| /linux/drivers/net/wireless/ath/ath12k/ |
| H A D | core.c | 219 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in __ath12k_core_create_board_name() 222 if (with_variant && ab->qmi.target.bdf_ext[0] != '\0') in __ath12k_core_create_board_name() 224 ab->qmi.target.bdf_ext); in __ath12k_core_create_board_name() 234 "bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%s", in __ath12k_core_create_board_name() 239 ab->qmi.target.chip_id, in __ath12k_core_create_board_name() 240 ab->qmi.target.board_id, in __ath12k_core_create_board_name() 245 "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s", in __ath12k_core_create_board_name() 247 ab->qmi in __ath12k_core_create_board_name() [all...] |
| H A D | pci.c | 728 struct ath12k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; in ath12k_pci_init_qmi_ce_config() 738 ab->qmi.service_ins_id = ab->hw_params->qmi_service_ins_id; in ath12k_pci_ce_irqs_enable() 744 ab->qmi.service_ins_id += ab_pci->qmi_instance; in ath12k_pci_msi_config() 960 /* On platforms with two or more identical mhi devices, qmi service run in ath12k_pci_aspm_restore() 962 * cannot register more than one qmi service with identical node ID. in ath12k_pci_aspm_restore() 965 * writes to the given register, it is available for firmware when the QMI service in ath12k_pci_aspm_restore() 1330 for (i = 0; i < ab->qmi.mem_seg_count; i++) { in ath12k_pci_coredump_calculate_size() 1331 mem_type = ath12k_coredump_get_dump_type(ab->qmi.target_mem[i].type); in ath12k_pci_coredump_calculate_size() 1339 ab->qmi.target_mem[i].type); in ath12k_pci_coredump_calculate_size() 1343 if (!ab->qmi in ath12k_pci_coredump_calculate_size() [all...] |
| /linux/drivers/usb/serial/ |
| H A D | qcserial.c | 223 /* Don't claim the QMI/net interface */ in handle_quectel_ec20() 276 * Composite mode; don't bind to the QMI/net interface as that in qcprobe() 287 * 3: QMI/net in qcprobe() 312 * 0: QMI/net in qcprobe() 325 /* Don't claim the QMI/net interface */ in qcprobe() 350 * 8: QMI/net in qcprobe() 381 /* QMI combined (qmi_wwan) */ in qcprobe() 385 /* QMI data (qmi_wwan) */ in qcprobe() 389 /* QMI control (qmi_wwan) */ in qcprobe()
|
| /linux/drivers/net/usb/ |
| H A D | qmi_wwan.c | 26 * 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", 805 * effect as clearing DTR. The device will not respond to QMI in qmi_wwan_bind() 814 * MDM9x30 is the first QMI chipset with USB3 support. Abuse in qmi_wwan_bind() 930 .description = "WWAN/QMI device", 939 .description = "WWAN/QMI device", 950 /* map QMI/wwan function by a fixed interface number */ 960 /* Gobi 1000 QMI/wwan interface number is 3 according to qcserial */ [all …]
|