| /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 | 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, &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 …]
|
| H A D | qmi.h | 8 #include <linux/soc/qcom/qmi.h> 98 spinlock_t event_lock; /* spinlock for qmi event list */
|
| /linux/drivers/net/wireless/ath/ath12k/ |
| H A D | qmi.c | 9 #include "qmi.h" 2077 hw_id_base += partner_ab->qmi.num_radios; in ath12k_host_cap_hw_link_id_init() 2097 "MLO is disabled hence skip QMI MLO cap"); in ath12k_host_cap_parse_mlo() 2101 if (!ab->qmi.num_radios || ab->qmi.num_radios == U8_MAX) { in ath12k_host_cap_parse_mlo() 2104 "skip QMI MLO cap due to invalid num_radio %d\n", in ath12k_host_cap_parse_mlo() 2105 ab->qmi.num_radios); in ath12k_host_cap_parse_mlo() 2147 info->num_local_links = partner_ab->qmi.num_radios; in ath12k_host_cap_parse_mlo() 2209 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath12k_qmi_host_cap_send() 2222 req.cal_done = ab->qmi.cal_done; in ath12k_qmi_host_cap_send() 2251 ret = qmi_txn_init(&ab->qmi.handle, &txn, in ath12k_qmi_host_cap_send() [all …]
|
| H A D | core.c | 222 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in __ath12k_core_create_board_name() 225 if (with_variant && ab->qmi.target.bdf_ext[0] != '\0') in __ath12k_core_create_board_name() 227 ab->qmi.target.bdf_ext); in __ath12k_core_create_board_name() 237 …endor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%… in __ath12k_core_create_board_name() 242 ab->qmi.target.chip_id, in __ath12k_core_create_board_name() 243 ab->qmi.target.board_id, in __ath12k_core_create_board_name() 248 "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s", in __ath12k_core_create_board_name() 250 ab->qmi.target.chip_id, in __ath12k_core_create_board_name() 252 ATH12K_BOARD_ID_DEFAULT : ab->qmi.target.board_id, in __ath12k_core_create_board_name() 733 if (ab->qmi.target.bdf_ext[0] != '\0') in ath12k_core_check_cc_code_bdfext() [all …]
|
| /linux/drivers/net/wireless/ath/ath11k/ |
| H A D | qmi.c | 11 #include "qmi.h" 1723 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath11k_qmi_host_cap_send() 1741 req.cal_done = ab->qmi.cal_done; in ath11k_qmi_host_cap_send() 1764 ret = qmi_txn_init(&ab->qmi.handle, &txn, in ath11k_qmi_host_cap_send() 1769 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_host_cap_send() 1798 struct qmi_handle *handle = &ab->qmi.handle; in ath11k_qmi_fw_ind_register_send() 1824 /* WCN6750 doesn't request for DDR memory via QMI, in ath11k_qmi_fw_ind_register_send() 1842 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_fw_ind_register_send() 1894 ab->qmi.target_mem_delayed) { in ath11k_qmi_respond_fw_mem_request() 1897 ab->qmi.mem_seg_count); in ath11k_qmi_respond_fw_mem_request() [all …]
|
| H A D | ce.h | 69 * Passed from Host to Target through QMI message and must be in 80 * Passed from Host to Target through QMI message during startup (one per CE).
|
| /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 TXN wait fail: %d\n", rc); in qcom_slim_qmi_send_select_inst_req() [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/drivers/remoteproc/ |
| H A 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 …]
|
| /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/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 …]
|
| /linux/samples/ |
| H A D | Kconfig | 114 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/sound/usb/ |
| H A D | Kconfig | 199 This module sets up the required QMI stream enable/disable 205 will be called snd-usb-audio-qmi.
|