From 6375f3b44a6ca22eff7f815873c1d89f6c647ec7 Mon Sep 17 00:00:00 2001 From: Bhaumik Bhatt Date: Fri, 18 Dec 2020 11:26:10 -0800 Subject: [PATCH] bus: mhi: host: Add session ID to MHI controller Session ID to be used during BHI transfers to recognize a particular session are currently not being stored in the MHI controller structure. Store them to allow for tracking and other future usage. Change-Id: I45a55f39226be3a21ff1e3317a899da1a63f3439 Signed-off-by: Bhaumik Bhatt Signed-off-by: Lazarus Motha --- drivers/bus/mhi/host/boot.c | 8 ++++---- include/linux/mhi.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/bus/mhi/host/boot.c b/drivers/bus/mhi/host/boot.c index c712a2654aec..7c24f2c822b7 100644 --- a/drivers/bus/mhi/host/boot.c +++ b/drivers/bus/mhi/host/boot.c @@ -185,7 +185,7 @@ static int mhi_fw_load_bhie(struct mhi_controller *mhi_cntrl, void __iomem *base = mhi_cntrl->bhie; struct device *dev = &mhi_cntrl->mhi_dev->dev; rwlock_t *pm_lock = &mhi_cntrl->pm_lock; - u32 tx_status, sequence_id; + u32 tx_status; int ret; read_lock_bh(pm_lock); @@ -194,9 +194,9 @@ static int mhi_fw_load_bhie(struct mhi_controller *mhi_cntrl, return -EIO; } - sequence_id = MHI_RANDOM_U32_NONZERO(BHIE_TXVECSTATUS_SEQNUM_BMSK); + mhi_cntrl->session_id = MHI_RANDOM_U32_NONZERO(BHIE_TXVECSTATUS_SEQNUM_BMSK); dev_dbg(dev, "Starting image download via BHIe. Sequence ID: %u\n", - sequence_id); + mhi_cntrl->session_id); mhi_write_reg(mhi_cntrl, base, BHIE_TXVECADDR_HIGH_OFFS, upper_32_bits(mhi_buf->dma_addr)); @@ -206,7 +206,7 @@ static int mhi_fw_load_bhie(struct mhi_controller *mhi_cntrl, mhi_write_reg(mhi_cntrl, base, BHIE_TXVECSIZE_OFFS, mhi_buf->len); ret = mhi_write_reg_field(mhi_cntrl, base, BHIE_TXVECDB_OFFS, - BHIE_TXVECDB_SEQNUM_BMSK, sequence_id); + BHIE_TXVECDB_SEQNUM_BMSK, mhi_cntrl->session_id); read_unlock_bh(pm_lock); if (ret) diff --git a/include/linux/mhi.h b/include/linux/mhi.h index 3dc3ef2bca65..bac68bbd7f68 100644 --- a/include/linux/mhi.h +++ b/include/linux/mhi.h @@ -429,6 +429,7 @@ struct mhi_controller { u32 minor_version; u32 serial_number; u32 oem_pk_hash[MHI_MAX_OEM_PK_HASH_SEGMENTS]; + u32 session_id; struct mhi_event *mhi_event; struct mhi_cmd *mhi_cmd;