scsi: ufs: core: Do not write interrupt enable register unnecessarily

Write a new value to the interrupt enable register only if it is
different from the old value, thereby saving a register write operation.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20250723165856.145750-8-adrian.hunter@intel.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Adrian Hunter 2025-07-23 19:58:55 +03:00 committed by Martin K. Petersen
parent b4c0cab4eb
commit d402b20f9c

View File

@ -371,10 +371,11 @@ EXPORT_SYMBOL_GPL(ufshcd_disable_irq);
*/
static void ufshcd_enable_intr(struct ufs_hba *hba, u32 intrs)
{
u32 set = ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
u32 old_val = ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
u32 new_val = old_val | intrs;
set |= intrs;
ufshcd_writel(hba, set, REG_INTERRUPT_ENABLE);
if (new_val != old_val)
ufshcd_writel(hba, new_val, REG_INTERRUPT_ENABLE);
}
/**
@ -384,10 +385,11 @@ static void ufshcd_enable_intr(struct ufs_hba *hba, u32 intrs)
*/
static void ufshcd_disable_intr(struct ufs_hba *hba, u32 intrs)
{
u32 set = ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
u32 old_val = ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
u32 new_val = old_val & ~intrs;
set &= ~intrs;
ufshcd_writel(hba, set, REG_INTERRUPT_ENABLE);
if (new_val != old_val)
ufshcd_writel(hba, new_val, REG_INTERRUPT_ENABLE);
}
static void ufshcd_configure_wb(struct ufs_hba *hba)