summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorgonzo <gonzo@FreeBSD.org>2015-01-24 01:53:28 +0000
committergonzo <gonzo@FreeBSD.org>2015-01-24 01:53:28 +0000
commitf4af1114dc88153fb314dabfebf6e41434b30998 (patch)
tree0391200580dfc07c441a16b18ca736dfd93c9185 /sys/arm
parent9f59ab68684dd8db650ca8276f9f3b44cc61b03d (diff)
downloadFreeBSD-src-f4af1114dc88153fb314dabfebf6e41434b30998.zip
FreeBSD-src-f4af1114dc88153fb314dabfebf6e41434b30998.tar.gz
After interrupt read value from register to make sure it reached hardware. This
should fix "Spurious inteerupt" message Suggested by ian@
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/ti/am335x/am335x_lcd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/arm/ti/am335x/am335x_lcd.c b/sys/arm/ti/am335x/am335x_lcd.c
index ada0801..4fd811c 100644
--- a/sys/arm/ti/am335x/am335x_lcd.c
+++ b/sys/arm/ti/am335x/am335x_lcd.c
@@ -356,6 +356,8 @@ am335x_lcd_intr(void *arg)
reg = LCD_READ4(sc, LCD_IRQSTATUS);
LCD_WRITE4(sc, LCD_IRQSTATUS, reg);
+ /* Read value back to make sure it reached the hardware */
+ reg = LCD_READ4(sc, LCD_IRQSTATUS);
if (reg & IRQ_SYNC_LOST) {
reg = LCD_READ4(sc, LCD_RASTER_CTRL);
@@ -401,6 +403,8 @@ am335x_lcd_intr(void *arg)
done:
LCD_WRITE4(sc, LCD_END_OF_INT_IND, 0);
+ /* Read value back to make sure it reached the hardware */
+ reg = LCD_READ4(sc, LCD_END_OF_INT_IND);
}
static int
OpenPOWER on IntegriCloud