diff options
author | gonzo <gonzo@FreeBSD.org> | 2015-01-24 01:53:28 +0000 |
---|---|---|
committer | gonzo <gonzo@FreeBSD.org> | 2015-01-24 01:53:28 +0000 |
commit | f4af1114dc88153fb314dabfebf6e41434b30998 (patch) | |
tree | 0391200580dfc07c441a16b18ca736dfd93c9185 /sys/arm | |
parent | 9f59ab68684dd8db650ca8276f9f3b44cc61b03d (diff) | |
download | FreeBSD-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.c | 4 |
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 |