ANDROID: scsi: ufs: add UFSHCD_ANDROID_QUIRK_NO_IS_READ_ON_H8

Add UFSHCD_ANDROID_QUIRK_NO_IS_READ_ON_H8 for host controllers which
break when the Interrupt Status register is re-read after entering
hibern8. In such cases after hibern8 entry is reported, no further
register access will occur in the interrupt handler.

Bug: 350576949
Change-Id: I8e810c96203a97f030216aae39253a2e102c7ebf
Signed-off-by: VAMSHI GAJJELA <vamshigajjela@google.com>
This commit is contained in:
VAMSHI GAJJELA
2025-07-01 11:30:16 +00:00
committed by Konstantin Vyshetsky
parent 279274c126
commit cb35713803
2 changed files with 8 additions and 0 deletions

View File

@@ -7006,6 +7006,11 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba)
if (enabled_intr_status)
retval |= ufshcd_sl_intr(hba, enabled_intr_status);
if (hba->android_quirks &
UFSHCD_ANDROID_QUIRK_NO_IS_READ_ON_H8 &&
intr_status & UIC_HIBERNATE_ENTER)
break;
intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
}

View File

@@ -704,6 +704,9 @@ enum ufshcd_android_quirks {
/* Set IID to one. */
UFSHCD_ANDROID_QUIRK_SET_IID_TO_ONE = 1 << 30,
/* Do not read IS after H8 enter */
UFSHCD_ANDROID_QUIRK_NO_IS_READ_ON_H8 = 1 << 31,
};
enum ufshcd_caps {