| /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 | qcom_pd_mapper.c | 14 #include <linux/soc/qcom/qmi.h> 148 static void qcom_pdm_get_domain_list(struct qmi_handle *qmi, in qcom_pdm_get_domain_list() argument 153 struct qcom_pdm_data *data = container_of(qmi, struct qcom_pdm_data, handle); in qcom_pdm_get_domain_list() 203 ret = qmi_send_response(qmi, sq, txn, SERVREG_GET_DOMAIN_LIST_REQ, in qcom_pdm_get_domain_list() 214 static void qcom_pdm_pfr(struct qmi_handle *qmi, in qcom_pdm_pfr() argument 228 ret = qmi_send_response(qmi, sq, txn, SERVREG_LOC_PFR_REQ, in qcom_pdm_pfr()
|
| /linux/drivers/net/wireless/ath/ath11k/ |
| H A D | qmi.c | 10 #include "qmi.h" 1722 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath11k_qmi_host_cap_send() 1740 req.cal_done = ab->qmi.cal_done; in ath11k_qmi_host_cap_send() 1763 ret = qmi_txn_init(&ab->qmi.handle, &txn, in ath11k_qmi_host_cap_send() 1768 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_host_cap_send() 1797 struct qmi_handle *handle = &ab->qmi.handle; in ath11k_qmi_fw_ind_register_send() 1823 /* WCN6750 doesn't request for DDR memory via QMI, in ath11k_qmi_fw_ind_register_send() 1841 ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, in ath11k_qmi_fw_ind_register_send() 1893 ab->qmi.target_mem_delayed) { in ath11k_qmi_respond_fw_mem_request() 1896 ab->qmi.mem_seg_count); in ath11k_qmi_respond_fw_mem_request() [all …]
|
| H A D | pci.c | 20 #include "qmi.h" 400 struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; in ath11k_pci_init_qmi_ce_config() 407 ab->qmi.service_ins_id = ab->hw_params.qmi_service_ins_id; in ath11k_pci_init_qmi_ce_config() 673 for (i = 0; i < ab->qmi.mem_seg_count; i++) { in ath11k_pci_coredump_calculate_size() 674 mem_type = ath11k_coredump_get_dump_type(ab->qmi.target_mem[i].type); in ath11k_pci_coredump_calculate_size() 682 ab->qmi.target_mem[i].type); in ath11k_pci_coredump_calculate_size() 686 if (!ab->qmi.target_mem[i].anyaddr) in ath11k_pci_coredump_calculate_size() 689 dump_seg_sz[mem_type] += ab->qmi.target_mem[i].size; in ath11k_pci_coredump_calculate_size() 742 file_data->qrtr_id = cpu_to_le32(ab_pci->ab->qmi.service_ins_id); in ath11k_pci_coredump_download() 788 for (i = 0; i < ab->qmi.mem_seg_count; i++) { in ath11k_pci_coredump_download() [all …]
|
| H A D | core.c | 1395 if (ab->qmi.target.bdf_ext[0] != '\0') in ath11k_core_check_cc_code_bdfext() 1443 strlen(smbios->bdf_ext), sizeof(ab->qmi.target.bdf_ext)); in ath11k_core_check_cc_code_bdfext() 1453 copied = strscpy(ab->qmi.target.bdf_ext, smbios->bdf_ext + strlen(magic), in ath11k_core_check_cc_code_bdfext() 1454 sizeof(ab->qmi.target.bdf_ext)); in ath11k_core_check_cc_code_bdfext() 1463 ATH11K_SMBIOS_BDF_EXT_TYPE, ab->qmi.target.bdf_ext); in ath11k_core_check_cc_code_bdfext() 1468 ab->qmi.target.bdf_ext[0] = '\0'; in ath11k_core_check_smbios() 1471 if (ab->qmi.target.bdf_ext[0] == '\0') in ath11k_core_check_smbios() 1479 size_t max_len = sizeof(ab->qmi.target.bdf_ext); in ath11k_core_check_dt() 1495 if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0) in ath11k_core_check_dt() 1513 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in __ath11k_core_create_board_name() [all …]
|
| /linux/drivers/net/wireless/ath/ath12k/ |
| H A D | qmi.c | 9 #include "qmi.h" 2120 hw_id_base += partner_ab->qmi.num_radios; in ath12k_host_cap_hw_link_id_init() 2140 "MLO is disabled hence skip QMI MLO cap\n"); in ath12k_host_cap_parse_mlo() 2144 if (!ab->qmi.num_radios || ab->qmi.num_radios == U8_MAX) { in ath12k_host_cap_parse_mlo() 2147 "skip QMI MLO cap due to invalid num_radio %u\n", in ath12k_host_cap_parse_mlo() 2148 ab->qmi.num_radios); in ath12k_host_cap_parse_mlo() 2190 info->num_local_links = partner_ab->qmi.num_radios; in ath12k_host_cap_parse_mlo() 2252 req.mem_cfg_mode = ab->qmi.target_mem_mode; in ath12k_qmi_host_cap_send() 2265 req.cal_done = ab->qmi.cal_done; in ath12k_qmi_host_cap_send() 2294 if (ab->qmi.dynamic_ddr_support) { in ath12k_qmi_host_cap_send() [all …]
|
| H A D | qmi.h | 11 #include <linux/soc/qcom/qmi.h> 138 spinlock_t event_lock; /* spinlock for qmi event list */ 615 static inline void ath12k_qmi_set_event_block(struct ath12k_qmi *qmi, bool block) in ath12k_qmi_set_event_block() argument 617 lockdep_assert_held(&qmi->event_lock); in ath12k_qmi_set_event_block() 619 qmi->block_event = block; in ath12k_qmi_set_event_block() 622 static inline bool ath12k_qmi_get_event_block(struct ath12k_qmi *qmi) in ath12k_qmi_get_event_block() argument 624 lockdep_assert_held(&qmi->event_lock); in ath12k_qmi_get_event_block() 626 return qmi->block_event; in ath12k_qmi_get_event_block()
|
| H A D | core.c | 26 #include "qmi.h" 225 /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ in __ath12k_core_create_board_name() 228 if (with_variant && ab->qmi.target.bdf_ext[0] != '\0') in __ath12k_core_create_board_name() 230 ab->qmi.target.bdf_ext); in __ath12k_core_create_board_name() 240 …endor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%… in __ath12k_core_create_board_name() 245 ab->qmi.target.chip_id, in __ath12k_core_create_board_name() 246 ab->qmi.target.board_id, in __ath12k_core_create_board_name() 251 "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s", in __ath12k_core_create_board_name() 253 ab->qmi.target.chip_id, in __ath12k_core_create_board_name() 255 ATH12K_BOARD_ID_DEFAULT : ab->qmi.target.board_id, in __ath12k_core_create_board_name() [all …]
|
| H A D | pci.c | 20 #include "qmi.h" 692 struct ath12k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; in ath12k_pci_init_qmi_ce_config() 702 ab->qmi.service_ins_id = ab->hw_params->qmi_service_ins_id; in ath12k_pci_init_qmi_ce_config() 708 ab->qmi.service_ins_id += ab_pci->qmi_instance; in ath12k_pci_init_qmi_ce_config() 924 /* On platforms with two or more identical mhi devices, qmi service run in ath12k_pci_update_qrtr_node_id() 926 * cannot register more than one qmi service with identical node ID. in ath12k_pci_update_qrtr_node_id() 929 * writes to the given register, it is available for firmware when the QMI service in ath12k_pci_update_qrtr_node_id() 1295 for (i = 0; i < ab->qmi.mem_seg_count; i++) { in ath12k_pci_coredump_calculate_size() 1296 mem_type = ath12k_coredump_get_dump_type(ab->qmi.target_mem[i].type); in ath12k_pci_coredump_calculate_size() 1304 ab->qmi.target_mem[i].type); in ath12k_pci_coredump_calculate_size() [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/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() 763 /* QMI service disconnect handlers */ 865 * qmi_bye_cb() - qmi bye message callback 866 * @handle: QMI handle 869 * This callback is invoked when the QMI bye control message is received 870 * from the QMI client. Handle the message accordingly by ensuring that [all …]
|
| H A D | Makefile | 2 snd-usb-audio-qmi-y := usb_audio_qmi_v01.o qc_audio_offload.o 3 snd-usb-audio-qmi-y += mixer_usb_offload.o 4 obj-$(CONFIG_SND_USB_AUDIO_QMI) += snd-usb-audio-qmi.o
|
| /linux/drivers/net/wireless/ath/ath10k/ |
| H A D | qmi.h | 8 #include <linux/soc/qcom/qmi.h> 98 spinlock_t event_lock; /* spinlock for qmi event list */
|
| H A D | Makefile | 40 ath10k_snoc-y += qmi.o \
|
| /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.
|
| /linux/include/linux/soc/qcom/ |
| H A D | pdr.h | 5 #include <linux/soc/qcom/qmi.h>
|
| /linux/drivers/net/ethernet/freescale/fman/ |
| H A D | fman_port.c | 61 /* QMI defines */ 281 /* QMI port register map */ 314 /* QMI dequeue prefetch modes */ 343 /* QMI dequeue from the SP channel - types */ 736 /* Init QMI registers */ in init() 1587 /* Disable QMI */ in fman_port_disable() 1592 /* Wait for QMI to finish FD handling */ in fman_port_disable() 1622 dev_dbg(port->dev, "%s: FMan Port[%d]: BMI or QMI is Busy. Port forced down\n", in fman_port_disable() 1661 /* Enable QMI */ in fman_port_enable()
|
| /linux/Documentation/devicetree/bindings/sound/ |
| H A D | qcom,q6usb.yaml | 17 passed along during the QMI stream enable request and configuration of
|