| /linux/Documentation/mhi/ |
| H A D | topology.rst | 4 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 …]
|
| H A D | mhi.rst | 4 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 …]
|
| H A D | index.rst | 4 MHI title 10 mhi
|
| /linux/include/linux/ |
| H A D | mhi_ep.h | 10 #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/drivers/bus/mhi/host/ |
| H A D | Kconfig | 3 # 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
|
| H A D | Makefile | 1 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
|
| H A D | pci_generic.c | 3 * 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 37 * @vf_config: MHI controller configuration for Virtual function (optional) 42 * @bar_num: PCI base address register to use for MHI MMIO register space 1204 /* The runtime_get() MHI callback means: in mhi_pci_runtime_get() 1212 /* The runtime_put() MHI callback means: in mhi_pci_runtime_put() 1234 /* Clean up MHI state */ in mhi_pci_recovery_work() [all …]
|
| H A D | boot.c | 14 #include <linux/mhi.h> 503 dev_err(dev, "Device MHI is not in valid state\n"); in mhi_fw_load_handler() 565 dev_err(dev, "MHI did not load image over BHI%s, ret: %d\n", in mhi_fw_load_handler() 584 * device transitioning into MHI READY state in mhi_fw_load_handler() 600 /* Transitioning into MHI RESET->READY state */ in mhi_fw_load_handler() 603 dev_err(dev, "MHI did not enter READY state\n"); in mhi_fw_load_handler() 638 dev_err(dev, "MHI did not load AMSS, ret:%d\n", ret); in mhi_download_amss_image()
|
| /linux/drivers/accel/qaic/ |
| H A D | qaic.h | 12 #include <linux/mhi.h> 141 /* Req. ID of request that will be queued next in MHI control device */ 143 /* Base address of the MHI bar */ 147 /* Controller structure for MHI devices */ 149 /* MHI control channel device */ 151 /* List of requests queued in MHI control device */ 153 /* Synchronizes MHI control device transactions and its xfer list */ 157 /* Work queue for tasks related to MHI control device */ 166 * true: A tx MHI transaction has failed and a rx buffer is still queued 179 /* MHI "QAIC_TIMESYNC" channel device */ [all …]
|
| H A D | qaic_timesync.c | 7 #include <linux/mhi.h> 68 * struct mqts_dev - MHI QAIC Timesync Control device. 70 * @mhi_dev: Pointer to associated MHI device. 75 * @sync_msg: Buffer used to send timesync message over MHI. 162 dev_err(mqtsdev->dev, "%s unable to queue to mhi:%d\n", __func__, ret); in qaic_timesync_timer() 244 MODULE_DEVICE_TABLE(mhi, qaic_timesync_match_table);
|
| /linux/drivers/net/wwan/ |
| H A D | mhi_wwan_ctrl.c | 4 #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 …]
|
| H A D | mhi_wwan_mbim.c | 2 /* 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 laye in mhi_mbim_ul_callback() [all...] |
| H A D | Kconfig | 40 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/net/qrtr/ |
| H A D | mhi.c | 6 #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");
|
| H A D | Makefile | 9 obj-$(CONFIG_QRTR_MHI) += qrtr-mhi.o 10 qrtr-mhi-y := mhi.o
|
| H A D | Kconfig | 32 tristate "MHI IPC Router channels" 35 Say Y here to support MHI based ipcrouter channels. MHI is the
|
| /linux/drivers/bus/mhi/ep/ |
| H A D | Kconfig | 2 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,
|
| H A D | sm.c | 35 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()
|
| H A D | internal.h | 19 /* MHI registers */ 47 /* MHI BHI registers */ 51 /* MHI Doorbell registers */ 173 /* MHI Ring related functions */ 209 /* MHI EP core functions */
|
| H A D | main.c | 3 * MHI Endpoint bus stack 57 * As per the MHI specification, section 4.3, Interrupt moderation: in mhi_ep_send_event() 223 * Create MHI device only during UL channel start. Since the MHI in mhi_ep_process_cmd_ring() 741 /* Clear the MHI reset if host is in reset state */ in mhi_ep_enable() 880 dev_dbg(dev, "Handling MHI state transition to %s\n", in mhi_ep_state_worker() 895 dev_err(dev, "Invalid MHI state transition: %d\n", itr->state); in mhi_ep_state_worker() 1000 dev_info(dev, "Host triggered MHI reset!\n"); in mhi_ep_irq() 1108 * We don't need to do anything special other than setting the MHI SYS_ERR 1109 * state. The host will reset all contexts and issue MHI RESET so that we 1166 dev_err(dev, "Failed to enable MHI endpoint\n"); in mhi_ep_power_up() [all …]
|
| /linux/drivers/net/ |
| H A D | mhi_net.c | 2 /* 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/drivers/bus/mhi/ |
| H A D | Kconfig | 3 # MHI bus 8 source "drivers/bus/mhi/host/Kconfig" 9 source "drivers/bus/mhi/ep/Kconfig"
|
| H A D | common.h | 11 #include <linux/mhi.h> 13 /* MHI registers */ 41 /* MHI BHI registers */ 73 /* MHI BHIE registers */ 106 /* MHI register bits */ 225 /* MHI transfer completion events */
|
| H A D | Makefile | 1 # Host MHI stack 4 # Endpoint MHI stack
|
| /linux/drivers/pci/endpoint/functions/ |
| H A D | Kconfig | 42 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.
|