summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorvamshi gajjela <vamshigajjela@google.com>2026-03-10 22:03:08 +0300
committerMartin K. Petersen <martin.petersen@oracle.com>2026-03-20 04:37:09 +0300
commit98eff361647ecba893aadce8808729672604a102 (patch)
treec42fa301bd17d4af8752c6a51dff316987d08347 /include
parentbdce3a69c578090dd5e3c77bcdaaca10c3a41e34 (diff)
downloadlinux-98eff361647ecba893aadce8808729672604a102.tar.xz
scsi: ufs: core: Handle MCQ IAG events
Add support for handling aggregation-based interrupts when operating in MCQ mode. In legacy interrupt mode, an IE.IAGES is triggered when the counter or timer threshold is reached. To manage this, the handler now resets the aggregation counter and timer by writing to the MCQIACRy.CTR register. Since the register layout of MCQIACRy is identical to the existing UTRIACR register, this implementation reuses the previously defined bitfield masks to maintain consistency and reduce code duplication. Extend ufshcd_handle_mcq_cq_events() with a boolean iag parameter. If set, the handler resets the MCQ IAG counter and timer. Define MCQ_IAG_EVENT_STATUS (0x200000) and include it in UFSHCD_ENABLE_MCQ_INTRS to ensure the interrupt is unmasked during initialization. Signed-off-by: Vamshi Gajjela <vamshigajjela@google.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260310190308.2474956-1-vamshigajjela@google.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include')
-rw-r--r--include/ufs/ufshci.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/ufs/ufshci.h b/include/ufs/ufshci.h
index 49a3a279e448..9f0fdd850e54 100644
--- a/include/ufs/ufshci.h
+++ b/include/ufs/ufshci.h
@@ -115,6 +115,7 @@ enum {
enum {
REG_CQIS = 0x0,
REG_CQIE = 0x4,
+ REG_MCQIACR = 0x8,
};
enum {
@@ -188,6 +189,7 @@ static inline u32 ufshci_version(u32 major, u32 minor)
#define SYSTEM_BUS_FATAL_ERROR 0x20000
#define CRYPTO_ENGINE_FATAL_ERROR 0x40000
#define MCQ_CQ_EVENT_STATUS 0x100000
+#define MCQ_IAG_EVENT_STATUS 0x200000
#define UFSHCD_UIC_HIBERN8_MASK (UIC_HIBERNATE_ENTER |\
UIC_HIBERNATE_EXIT)