VIGS: Fix fence ack losses 41/16641/1
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Thu, 20 Feb 2014 07:57:39 +0000 (11:57 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Thu, 20 Feb 2014 07:57:39 +0000 (11:57 +0400)
commit6d87db1464ae32f3408a7f92f511567748dd9567
tree1d026696da0a8410dfc297b28ca1290475363a6b
parentc3eedcf1d9172208488b23d4ec6270f30823bb2c
VIGS: Fix fence ack losses

It's incorrect to have vblank enable/disable flag
in INT register, it can cause fence ack losses, consider
the following scenario:
1. Fence interrupt is set on host, fence_pending bit is
   set in INT register
2. vblank is turned off on guest, INT register is being
   written to and since fence_pending bit is 1 it's
   CLEARED on host
3. Now guest handles fence IRQ, but fence_pending bit
   is 0, thus, fence ack is lost

The solution is to have separate register - CON and
vblank enable/disable bit should be there

Change-Id: I1ff97d4cf8cddaec65dfe9d4c1afef3d901b4825
hw/vigs/vigs_device.c
hw/vigs/vigs_regs.h