RTC polling mode broken

The RTC emulation does not set the IRQ flags independent of the IRQ enable bits.

The original MC146818A datasheet from 1984 notes:
        "flag bits in Register C [...] are set independent of the
        state of the corresponding enable bits in Register B"
Similar sections can be found in newer documentation e.g. in rtc82885.

Qemu and Bochs set the IRQ flags only if they are enabled,
which breaks drivers polling on them.

The following patch corrects this for the update-ended-flag in Qemu only.
It does not fix the handling of the other flags.

Signed-off-by: Bernhard Kauer <kauer@tudos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
1 file changed
tree: 8bcc7f4c47e8041a127a32fa481698252a72b429
  1. audio/
  2. block/
  3. bsd-user/
  4. darwin-user/
  5. fpu/
  6. gdb-xml/
  7. hw/
  8. linux-user/
  9. pc-bios/
  10. slirp/
  11. target-alpha/
  12. target-arm/
  13. target-cris/
  14. target-i386/
  15. target-m68k/
  16. target-microblaze/
  17. target-mips/
  18. target-ppc/
  19. target-sh4/
  20. target-sparc/
  21. tcg/
  22. tests/
  23. .gitignore
  24. a.out.h
  25. acl.c
  26. acl.h
  27. aes.c
  28. aes.h
  29. aio.c
  30. alpha-dis.c
  31. alpha.ld
  32. arm-dis.c
  33. arm-semi.c
  34. arm.ld
  35. balloon.h
  36. block.c
  37. block.h
  38. block_int.h
  39. bswap.h
  40. bt-host.c
  41. bt-host.h
  42. bt-vhci.c
  43. buffered_file.c
  44. buffered_file.h
  45. cache-utils.c
  46. cache-utils.h
  47. Changelog
  48. cmd.c
  49. cmd.h
  50. cocoa.m
  51. CODING_STYLE
  52. configure
  53. console.c
  54. console.h
  55. COPYING
  56. COPYING.LIB
  57. cpu-all.h
  58. cpu-common.h
  59. cpu-defs.h
  60. cpu-exec.c
  61. create_config
  62. cris-dis.c
  63. curses.c
  64. curses_keys.h
  65. cutils.c
  66. d3des.c
  67. d3des.h
  68. def-helper.h
  69. device_tree.c
  70. device_tree.h
  71. dis-asm.h
  72. disas.c
  73. disas.h
  74. dma-helpers.c
  75. dma.h
  76. dyngen-exec.h
  77. elf.h
  78. elf_ops.h
  79. exec-all.h
  80. exec.c
  81. feature_to_c.sh
  82. gdbstub.c
  83. gdbstub.h
  84. gen-icount.h
  85. host-utils.c
  86. host-utils.h
  87. hostregs_helper.h
  88. hpet.h
  89. hppa-dis.c
  90. hppa.ld
  91. hxtool
  92. i386-dis.c
  93. i386.ld
  94. ia64.ld
  95. ioport-user.c
  96. ioport.c
  97. ioport.h
  98. keymaps.c
  99. keymaps.h
  100. kqemu.c
  101. kqemu.h
  102. kvm-all.c
  103. kvm.h
  104. libfdt_env.h
  105. LICENSE
  106. loader.c
  107. m68k-dis.c
  108. m68k-semi.c
  109. m68k.ld
  110. MAINTAINERS
  111. Makefile
  112. Makefile.hw
  113. Makefile.target
  114. microblaze-dis.c
  115. migration-exec.c
  116. migration-tcp.c
  117. migration.c
  118. migration.h
  119. mips-dis.c
  120. mips.ld
  121. mipsel.ld
  122. module.c
  123. module.h
  124. monitor.c
  125. monitor.h
  126. nbd.c
  127. nbd.h
  128. net-checksum.c
  129. net.c
  130. net.h
  131. osdep.c
  132. osdep.h
  133. pci-ids.txt
  134. posix-aio-compat.c
  135. posix-aio-compat.h
  136. ppc-dis.c
  137. ppc.ld
  138. ppc64.ld
  139. qemu-aio.h
  140. qemu-binfmt-conf.sh
  141. qemu-char.c
  142. qemu-char.h
  143. qemu-common.h
  144. qemu-doc.texi
  145. qemu-img-cmds.hx
  146. qemu-img.c
  147. qemu-img.texi
  148. qemu-io.c
  149. qemu-lock.h
  150. qemu-log.h
  151. qemu-malloc.c
  152. qemu-monitor.hx
  153. qemu-nbd.c
  154. qemu-nbd.texi
  155. qemu-option.c
  156. qemu-option.h
  157. qemu-options.hx
  158. qemu-sockets.c
  159. qemu-tech.texi
  160. qemu-thread.c
  161. qemu-thread.h
  162. qemu-timer.h
  163. qemu-tool.c
  164. qemu.sasl
  165. qemu_socket.h
  166. readline.c
  167. readline.h
  168. README
  169. rules.mak
  170. s390-dis.c
  171. s390.ld
  172. savevm.c
  173. sdl.c
  174. sdl_keysym.h
  175. sdl_zoom.c
  176. sdl_zoom.h
  177. sdl_zoom_template.h
  178. sh4-dis.c
  179. softmmu-semi.h
  180. softmmu_defs.h
  181. softmmu_exec.h
  182. softmmu_header.h
  183. softmmu_template.h
  184. sparc-dis.c
  185. sparc.ld
  186. sparc64.ld
  187. sys-queue.h
  188. sysemu.h
  189. tap-win32.c
  190. targphys.h
  191. texi2pod.pl
  192. thunk.c
  193. thunk.h
  194. TODO
  195. tool-osdep.c
  196. translate-all.c
  197. uboot_image.h
  198. usb-bsd.c
  199. usb-linux.c
  200. usb-stub.c
  201. VERSION
  202. vgafont.h
  203. vl.c
  204. vnc-auth-sasl.c
  205. vnc-auth-sasl.h
  206. vnc-auth-vencrypt.c
  207. vnc-auth-vencrypt.h
  208. vnc-tls.c
  209. vnc-tls.h
  210. vnc.c
  211. vnc.h
  212. vnc_keysym.h
  213. vnchextile.h
  214. x86_64.ld
  215. x_keymap.c
  216. x_keymap.h