Home
last modified time | relevance | path

Searched full:mhi (Results 1 – 25 of 90) sorted by relevance

1234

/linux-6.14.4/Documentation/mhi/
Dtopology.rst4 MHI Topology
7 This document provides information about the MHI topology modeling and
10 MHI Controller
13 MHI controller driver manages the interaction with the MHI client devices
14 such as the external modems and WiFi chipsets. It is also the MHI bus master
20 Below are the roles of the MHI controller driver:
24 * Allocates struct mhi_controller and registers with the MHI bus framework
29 MHI Device
32 MHI device is the logical device which binds to a maximum of two MHI channels
33 for bi-directional communication. Once MHI is in powered on state, the MHI
[all …]
Dmhi.rst4 MHI (Modem Host Interface)
7 This document provides information about the MHI protocol.
12 MHI is a protocol developed by Qualcomm Innovation Center, Inc. It is used
14 speed peripheral buses or shared memory. Even though MHI can be easily adapted
15 to any peripheral buses, it is primarily used with PCIe based devices. MHI
18 diagnostics over at least one of those logical channels. Also, the MHI
22 MHI Internals
32 MHI control registers: Access to MHI configurations registers
34 MHI BHI registers: BHI (Boot Host Interface) registers are used by the host
35 for downloading the firmware to the device before MHI initialization.
[all …]
/linux-6.14.4/include/linux/
Dmhi.h27 * enum mhi_callback - MHI callback
28 * @MHI_CB_IDLE: MHI entered idle state
30 * @MHI_CB_LPM_ENTER: MHI host entered low power mode
31 * @MHI_CB_LPM_EXIT: MHI host about to exit low power mode
32 * @MHI_CB_EE_RDDM: MHI device entered RDDM exec env
33 * @MHI_CB_EE_MISSION_MODE: MHI device entered Mission Mode exec env
34 * @MHI_CB_SYS_ERROR: MHI device entered error state (may recover)
35 * @MHI_CB_FATAL_ERROR: MHI device entered fatal error state
132 MHI_EE_DISABLE_TRANSITION, /* local EE, not related to mhi spec */
138 * enum mhi_state - MHI states
[all …]
Dmhi_ep.h10 #include <linux/mhi.h>
29 * struct mhi_ep_cntrl_config - MHI Endpoint controller configuration
30 * @mhi_version: MHI spec version supported by the controller
43 * struct mhi_ep_db_info - MHI Endpoint doorbell info
53 * struct mhi_ep_buf_info - MHI Endpoint transfer buffer info
54 * @mhi_dev: MHI device associated with this buffer
74 * struct mhi_ep_cntrl - MHI Endpoint controller structure
75 * @cntrl_dev: Pointer to the struct device of physical bus acting as the MHI
77 * @mhi_dev: MHI Endpoint device instance for the controller
78 * @mmio: MMIO region containing the MHI registers
[all …]
/linux-6.14.4/drivers/bus/mhi/host/
DKconfig3 # MHI bus
9 tristate "Modem Host Interface (MHI) bus"
11 Bus driver for MHI protocol. Modem Host Interface (MHI) is a
17 bool "Debugfs support for the MHI bus"
20 Enable debugfs support for use with the MHI transport. Allows
21 reading and/or modifying some values within the MHI controller
25 tristate "MHI PCI controller driver"
29 This driver provides MHI PCI controller driver for devices such as
Dpm.c13 #include <linux/mhi.h>
21 * Not all MHI state transitions are synchronous. Transitions like Linkdown,
154 dev_err(dev, "Failed to set MHI state to: %s\n", in mhi_set_mhi_state()
190 dev_err(dev, "Device failed to clear MHI Reset\n"); in mhi_ready_state_transition()
200 dev_err(dev, "Device failed to enter MHI Ready\n"); in mhi_ready_state_transition()
250 /* Set MHI to M0 state */ in mhi_ready_state_transition()
333 * After receiving the MHI state change event from the device indicating the
372 /* MHI M3 completion handler */
422 /* Force MHI to be in M0 state before continuing */ in mhi_pm_mission_mode_transition()
456 * The MHI devices are only created when the client device switches its in mhi_pm_mission_mode_transition()
[all …]
DMakefile1 obj-$(CONFIG_MHI_BUS) += mhi.o
2 mhi-y := init.o main.o pm.o boot.o
3 mhi-$(CONFIG_MHI_BUS_DEBUG) += debugfs.o
Dpci_generic.c3 * MHI PCI driver - MHI over PCI controller driver
5 * This module is a generic driver for registering MHI-over-PCI devices,
13 #include <linux/mhi.h>
35 * struct mhi_pci_dev_info - MHI PCI device specific information
36 * @config: MHI controller configuration
41 * @bar_num: PCI base address register to use for MHI MMIO register space
1040 /* The runtime_get() MHI callback means: in mhi_pci_runtime_get()
1048 /* The runtime_put() MHI callback means: in mhi_pci_runtime_put()
1068 /* Clean up MHI state */ in mhi_pci_recovery_work()
1164 dev_info(&pdev->dev, "MHI PCI device found: %s\n", info->name); in mhi_pci_probe()
[all …]
/linux-6.14.4/Documentation/ABI/stable/
Dsysfs-bus-mhi1 What: /sys/bus/mhi/devices/.../serialnumber
4 Contact: mhi@lists.linux.dev
12 What: /sys/bus/mhi/devices/.../oem_pk_hash
15 Contact: mhi@lists.linux.dev
23 What: /sys/bus/mhi/devices/.../soc_reset
26 Contact: mhi@lists.linux.dev
27 Description: Initiates a SoC reset on the MHI controller. A SoC reset is
33 What: /sys/bus/mhi/devices/.../trigger_edl
36 Contact: mhi@lists.linux.dev
40 triggering mechanism defined in the MHI spec v1.2. Once in EDL
/linux-6.14.4/drivers/net/wwan/
Dmhi_wwan_ctrl.c4 #include <linux/mhi.h>
9 /* MHI wwan flags */
19 /* Lower level is a mhi dev, upper level is a wwan port */
34 /* RX budget is initially set to the size of the MHI RX queue and is
112 /* Start mhi device's channel(s) */ in mhi_wwan_ctrl_start()
117 /* Don't allocate more buffers than MHI channel queue size */ in mhi_wwan_ctrl_start()
120 /* Add buffers to the MHI inbound queue */ in mhi_wwan_ctrl_start()
153 /* Queue the packet for MHI transfer and check fullness of the queue */ in mhi_wwan_ctrl_tx()
179 /* MHI core has done with the buffer, release it */ in mhi_ul_xfer_cb()
182 /* There is likely new slot available in the MHI queue, re-allow TX */ in mhi_ul_xfer_cb()
[all …]
Dmhi_wwan_mbim.c2 /* MHI MBIM Network driver - Network/MBIM over MHI bus
18 #include <linux/mhi.h>
32 * one 4K page. Large MBIM packets will simply be split over several MHI
33 * transfers and chained by the MHI net layer (zerocopy).
158 /* Serialize MHI channel queuing and MBIM seq */ in mhi_mbim_ndo_xmit()
286 /* Only IP data type supported, no DSS in MHI context */ in mhi_mbim_rx()
439 /* MHI layer stopping/resetting the DL channel */ in mhi_mbim_dl_callback()
494 * freed by the MHI stack) and perform accounting. in mhi_mbim_ul_callback()
500 /* MHI layer stopping/resetting the UL channel */ in mhi_mbim_ul_callback()
521 /* Feed the MHI rx buffer pool */ in mhi_mbim_ndo_open()
[all …]
DKconfig40 tristate "MHI WWAN control driver for QCOM-based PCIe modems"
43 MHI WWAN CTRL allows QCOM-based PCIe modems to expose different modem
53 tristate "MHI WWAN MBIM network driver for QCOM-based PCIe modems"
56 MHI WWAN MBIM is a WWAN network driver for QCOM-based PCIe modems.
57 It implements MBIM over MHI, for IP data aggregation and muxing.
/linux-6.14.4/drivers/net/wireless/ath/ath12k/
Dmhi.c13 #include "mhi.h"
205 "MHI", &num_vectors, in ath12k_mhi_get_msi()
210 ath12k_dbg(ab, ATH12K_DBG_PCI, "Number of assigned MSI for MHI is %d, base vector is %d\n", in ath12k_mhi_get_msi()
274 ath12k_dbg(ab, ATH12K_DBG_BOOT, "mhi notify status reason %s\n", in ath12k_mhi_op_status_cb()
350 /* use MHI firmware file from firmware-N.bin */ in ath12k_mhi_register()
360 /* use MHI firmware file from firmware-N.bin */ in ath12k_mhi_register()
364 /* use the old separate mhi.bin MHI firmware file */ in ath12k_mhi_register()
374 ath12k_err(ab, "failed to get msi for mhi\n"); in ath12k_mhi_register()
394 ath12k_err(ab, "failed to register to mhi bus, err = %d\n", ret); in ath12k_mhi_register()
479 ath12k_err(ab, "unhandled mhi state (%d)\n", mhi_state); in ath12k_mhi_set_state_bit()
[all …]
/linux-6.14.4/drivers/accel/qaic/
Dqaic.h12 #include <linux/mhi.h>
114 /* Req. ID of request that will be queued next in MHI control device */
120 /* Controller structure for MHI devices */
122 /* MHI control channel device */
124 /* List of requests queued in MHI control device */
126 /* Synchronizes MHI control device transactions and its xfer list */
130 /* Work queue for tasks related to MHI control device */
139 * true: A tx MHI transaction has failed and a rx buffer is still queued
152 /* MHI "QAIC_TIMESYNC" channel device */
154 /* Work queue for tasks related to MHI "QAIC_TIMESYNC" channel */
[all …]
/linux-6.14.4/drivers/net/wireless/ath/ath11k/
Dmhi.c16 #include "mhi.h"
206 ret = ath11k_pcic_get_user_msi_assignment(ab, "MHI", &num_vectors, in ath11k_mhi_get_msi()
354 /* use MHI firmware file from firmware-N.bin */ in ath11k_mhi_register()
358 /* use the old separate mhi.bin MHI firmware file */ in ath11k_mhi_register()
367 ath11k_err(ab, "failed to get msi for mhi\n"); in ath11k_mhi_register()
414 ath11k_err(ab, "failed to register to mhi bus, err = %d\n", ret); in ath11k_mhi_register()
444 ath11k_warn(ab, "failed to prepare mhi: %d", ret); in ath11k_mhi_start()
450 ath11k_warn(ab, "failed to power up mhi: %d", ret); in ath11k_mhi_start()
470 ath11k_warn(ab, "failed to suspend mhi: %d", ret); in ath11k_mhi_suspend()
482 /* Do force MHI resume as some devices like QCA6390, WCN6855 in ath11k_mhi_resume()
[all …]
/linux-6.14.4/drivers/bus/mhi/ep/
DKconfig2 tristate "Modem Host Interface (MHI) bus Endpoint implementation"
4 Bus driver for MHI protocol. Modem Host Interface (MHI) is a
9 MHI_BUS_EP implements the MHI protocol for the endpoint devices,
Dsm.c35 dev_err(dev, "MHI state change to %s from %s is not allowed!\n", in mhi_ep_set_mhi_state()
43 dev_err(dev, "MHI state (%s) not supported\n", mhi_state_str(mhi_state)); in mhi_ep_set_mhi_state()
65 /* If MHI is in M3, resume suspended channels */ in mhi_ep_set_m0_state()
141 dev_err(dev, "READY state transition failed. MHI host not in RESET state\n"); in mhi_ep_set_ready_state()
Dinternal.h19 /* MHI registers */
47 /* MHI BHI registers */
51 /* MHI Doorbell registers */
173 /* MHI Ring related functions */
209 /* MHI EP core functions */
/linux-6.14.4/Documentation/accel/qaic/
Daic100.rst40 operate (1 for MHI, 16 for the DMA Bridge). Falling back to 1 MSI is possible in
46 * The first BAR is 4K in size, and exposes the MHI interface to the host.
56 * MHI (Modem Host Interface)
62 MHI section in Hardware Description
65 AIC100 has one MHI interface over PCIe. MHI itself is documented at
66 Documentation/mhi/index.rst MHI is the mechanism the host uses to communicate
68 the device occurs via MHI.
75 communicates with the host via MHI. Each AIC100 has one of
139 Interface) component of MHI.
145 SBL initializes MHI, and uses MHI to notify the host that the device has entered
[all …]
/linux-6.14.4/net/qrtr/
Dmhi.c6 #include <linux/mhi.h>
20 /* From MHI to QRTR */
36 /* From QRTR to MHI */
47 /* Send data over MHI */
101 dev_dbg(qdev->dev, "Qualcomm MHI QRTR driver probed\n"); in qcom_mhi_qrtr_probe()
119 MODULE_DEVICE_TABLE(mhi, qcom_mhi_qrtr_id_table);
182 MODULE_DESCRIPTION("Qualcomm IPC-Router MHI interface driver");
DMakefile9 obj-$(CONFIG_QRTR_MHI) += qrtr-mhi.o
10 qrtr-mhi-y := mhi.o
DKconfig32 tristate "MHI IPC Router channels"
35 Say Y here to support MHI based ipcrouter channels. MHI is the
/linux-6.14.4/drivers/net/
Dmhi_net.c2 /* MHI Network driver - Network over MHI bus
8 #include <linux/mhi.h>
181 /* Packet can not fit in one MHI buffer and has been in mhi_net_dl_callback()
182 * split over multiple MHI transfers, do re-aggregation. in mhi_net_dl_callback()
193 /* MHI layer stopping/resetting the DL channel */ in mhi_net_dl_callback()
245 * freed by the MHI stack) and perform accounting. in mhi_net_ul_callback()
251 /* MHI layer stopping/resetting the UL channel */ in mhi_net_ul_callback()
321 /* Start MHI channels */ in mhi_net_newlink()
396 MODULE_DEVICE_TABLE(mhi, mhi_net_id_table);
412 MODULE_DESCRIPTION("Network over MHI");
/linux-6.14.4/drivers/bus/mhi/
DKconfig3 # MHI bus
8 source "drivers/bus/mhi/host/Kconfig"
9 source "drivers/bus/mhi/ep/Kconfig"
/linux-6.14.4/drivers/pci/endpoint/functions/
DKconfig42 tristate "PCI Endpoint driver for MHI bus"
46 driver for Modem Host Interface (MHI) bus in Qualcomm Endpoint
49 If in doubt, say "N" to disable Endpoint driver for MHI bus.

1234