The irqstatus bits are cleared by writing a '1' to the irqstatus
register. Change bogus RMW register access to a simple write of the
bitmask to be cleared.
/* wait for processing to complete */
while (!(readl(&elm_cfg->irqstatus) & (0x1 << poly)));
/* clear status */
/* wait for processing to complete */
while (!(readl(&elm_cfg->irqstatus) & (0x1 << poly)));
/* clear status */
- writel((readl(&elm_cfg->irqstatus) & ~(0x1 << poly)),
- &elm_cfg->irqstatus);
+ writel(0x1 << poly, &elm_cfg->irqstatus);
/* check if correctable */
location_status = readl(&elm_cfg->error_location[poly].location_status);
/* check if correctable */
location_status = readl(&elm_cfg->error_location[poly].location_status);