Introduce independent bus and device voting mechanism for clients and save
hardware information from BHI.
Allow reading and modifying some MHI variables for debug, test, and
information purposes using debugfs.
Read values for device specific hardware information to be used by OEMs in
factory testing such as serial number and PK hash using sysfs.
This set of patches was tested on arm64 and x86.
v2:
-Please note: an upcoming ath11k driver patch will depend on the following patch:
"bus: mhi: core: Introduce independent voting mechanism"
-Fixed typo in one of the patches
-Updated MAINTAINERS for the sysfs ABI documentation
Bhaumik Bhatt (6):
bus: mhi: core: Introduce independent voting mechanism
bus: mhi: core: Use generic name field for an MHI device
bus: mhi: core: Introduce helper function to check device state
bus: mhi: core: Introduce debugfs entries and counters for MHI
bus: mhi: core: Read and save device hardware information from BHI
bus: mhi: core: Introduce sysfs entries for MHI
Documentation/ABI/stable/sysfs-bus-mhi | 25 ++
MAINTAINERS | 1 +
drivers/bus/mhi/Kconfig | 8 +
drivers/bus/mhi/core/Makefile | 5 +-
drivers/bus/mhi/core/boot.c | 17 +-
drivers/bus/mhi/core/debugfs.c | 431 +++++++++++++++++++++++++++++++++
drivers/bus/mhi/core/init.c | 80 +++++-
drivers/bus/mhi/core/internal.h | 29 +++
drivers/bus/mhi/core/main.c | 6 +-
drivers/bus/mhi/core/pm.c | 79 ++++--
include/linux/mhi.h | 39 ++-
11 files changed, 673 insertions(+), 47 deletions(-)
create mode 100644 Documentation/ABI/stable/sysfs-bus-mhi
create mode 100644 drivers/bus/mhi/core/debugfs.c
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Introduce a helper function to determine whether the device is in a
powered ON state and resides in one of the active MHI states. This will
allow for some use cases in reading debugfs entries.
Signed-off-by: Bhaumik Bhatt <[email protected]>
Reviewed-by: Jeffrey Hugo <[email protected]>
---
drivers/bus/mhi/core/internal.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/bus/mhi/core/internal.h b/drivers/bus/mhi/core/internal.h
index b1f640b..2f18be7 100644
--- a/drivers/bus/mhi/core/internal.h
+++ b/drivers/bus/mhi/core/internal.h
@@ -599,6 +599,11 @@ int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl,
int __mhi_device_get_sync(struct mhi_controller *mhi_cntrl);
int mhi_send_cmd(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
enum mhi_cmd_type cmd);
+static inline bool mhi_is_active(struct mhi_controller *mhi_cntrl)
+{
+ return (mhi_cntrl->dev_state >= MHI_STATE_M0 &&
+ mhi_cntrl->dev_state <= MHI_STATE_M3_FAST);
+}
/* Register access methods */
void mhi_db_brstmode(struct mhi_controller *mhi_cntrl, struct db_cfg *db_cfg,
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project