EDAC/altera: Use correct write width with the INTTEST register
authorNiravkumar L Rabara <niravkumar.l.rabara@intel.com>
Tue, 27 May 2025 14:57:07 +0000 (07:57 -0700)
committerBorislav Petkov (AMD) <bp@alien8.de>
Thu, 29 May 2025 15:38:55 +0000 (17:38 +0200)
On the SoCFPGA platform, the INTTEST register supports only 16-bit writes.
A 32-bit write triggers an SError to the CPU so do 16-bit accesses only.

  [ bp: AI-massage the commit message. ]

Fixes: c7b4be8db8bc ("EDAC, altera: Add Arria10 OCRAM ECC support")
Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Signed-off-by: Matthew Gerlach <matthew.gerlach@altera.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
Cc: stable@kernel.org
Link: https://lore.kernel.org/20250527145707.25458-1-matthew.gerlach@altera.com
drivers/edac/altera_edac.c

index 2033360..cae52c6 100644 (file)
@@ -1746,9 +1746,9 @@ altr_edac_a10_device_trig(struct file *file, const char __user *user_buf,
 
        local_irq_save(flags);
        if (trig_type == ALTR_UE_TRIGGER_CHAR)
-               writel(priv->ue_set_mask, set_addr);
+               writew(priv->ue_set_mask, set_addr);
        else
-               writel(priv->ce_set_mask, set_addr);
+               writew(priv->ce_set_mask, set_addr);
 
        /* Ensure the interrupt test bits are set */
        wmb();
@@ -1778,7 +1778,7 @@ altr_edac_a10_device_trig2(struct file *file, const char __user *user_buf,
 
        local_irq_save(flags);
        if (trig_type == ALTR_UE_TRIGGER_CHAR) {
-               writel(priv->ue_set_mask, set_addr);
+               writew(priv->ue_set_mask, set_addr);
        } else {
                /* Setup read/write of 4 bytes */
                writel(ECC_WORD_WRITE, drvdata->base + ECC_BLK_DBYTECTRL_OFST);