Fix incorrect orientation at boot.

The goldfish kernel's event driver is very picky about the
state of the virtual device it talks to. Essentially, it can
only listen to h/w events if the corresponding IRQ is raised
_after_ it has completed some initial setup.

If the IRQ is raised before, the driver will refuse to listen
to events, and any interaction becomes impossible.

We changed the way our UI windows are built and managed
previously, and this had the unfortunate effect of sending
one h/w event too soon, which, in the old code, would raise
the IRQ prematurely. This resulted in an input freeze.

To work around this the UI code was modified to not send
the initial h/w event, but this resulted in bad orientation
of the home screen at the end of the boot sequence.

This change allows the virtual device to wait for the kernel
driver before raising the IRQ, in the case any h/w event has
been buffered. It also removes the hack in the UI code,
allowing the send of the initial h/w event at startup.

BONUS MINOR CHANGES:
    EsounD probe: fix error message.
    console: fix compiler warnings
    libpng: proper handling of MMX support.
    android-configure.sh: fix --ignore-audio handling
        The option didn't do anything if the audio development packages
        are properly installed on the system.

Change-Id: Ib134158873d5cb72290c9676d92d20233226c889
7 files changed
tree: 50bc7e6512e1465a690b7b1569483034dcadefcf
  1. android/
  2. audio/
  3. block/
  4. distrib/
  5. docs/
  6. elff/
  7. fpu/
  8. gdb-xml/
  9. hw/
  10. images/
  11. memcheck/
  12. pc-bios/
  13. proxy/
  14. slirp/
  15. slirp-android/
  16. target-arm/
  17. tcg/
  18. telephony/
  19. .gitignore
  20. a.out.h
  21. acl.c
  22. acl.h
  23. aes.c
  24. aes.h
  25. aio-android.c
  26. aio.c
  27. alpha.ld
  28. android-configure.sh
  29. android-rebuild.sh
  30. Android.mk
  31. arm-dis.c
  32. arm-semi.c
  33. arm.ld
  34. balloon.h
  35. block.c
  36. block.h
  37. block_int.h
  38. bswap.h
  39. bt-host.c
  40. bt-host.h
  41. bt-vhci.c
  42. buffered_file.c
  43. buffered_file.h
  44. cache-utils.c
  45. cache-utils.h
  46. cbuffer.c
  47. cbuffer.h
  48. Changelog
  49. CHANGES.TXT
  50. charpipe.c
  51. charpipe.h
  52. CleanSpec.mk
  53. compatfd.c
  54. compatfd.h
  55. console-ui.c
  56. console.c
  57. console.h
  58. COPYING
  59. COPYING.LIB
  60. cpu-all.h
  61. cpu-common.h
  62. cpu-defs.h
  63. cpu-exec.c
  64. curses.c
  65. curses_keys.h
  66. cutils.c
  67. d3des.c
  68. d3des.h
  69. dcache.c
  70. dcache.h
  71. def-helper.h
  72. device_tree.c
  73. device_tree.h
  74. dis-asm.h
  75. disas.c
  76. disas.h
  77. dma-helpers.c
  78. dma.h
  79. dyngen-exec.h
  80. dynlink-static.c
  81. dynlink.h
  82. elf.h
  83. elf_ops.h
  84. envlist.c
  85. envlist.h
  86. exec-all.h
  87. exec.c
  88. feature_to_c.sh
  89. framebuffer.c
  90. framebuffer.h
  91. gdbstub.c
  92. gdbstub.h
  93. gen-charmap.py
  94. gen-icount.h
  95. gen-skin.py
  96. host-defs.h
  97. host-utils.c
  98. host-utils.h
  99. hostregs_helper.h
  100. hpet.h
  101. hxtool
  102. i386-dis.c
  103. i386-vl.ld
  104. i386.ld
  105. ia64.ld
  106. input.c
  107. INSTALL
  108. iolooper-select.c
  109. iolooper.h
  110. ioport-user.c
  111. ioport.c
  112. ioport.h
  113. json-lexer.c
  114. json-lexer.h
  115. json-parser.c
  116. json-parser.h
  117. json-streamer.c
  118. json-streamer.h
  119. keymaps.c
  120. keymaps.h
  121. kqemu.c
  122. kqemu.h
  123. kvm.h
  124. LICENSE
  125. linux_keycodes.h
  126. loader.c
  127. loadpng.c
  128. m68k.ld
  129. Makefile
  130. Makefile.android
  131. migration-dummy-android.c
  132. migration-exec.c
  133. migration-tcp-android.c
  134. migration-tcp.c
  135. migration.c
  136. migration.h
  137. module.c
  138. module.h
  139. MODULE_LICENSE_GPL
  140. monitor.c
  141. monitor.h
  142. net-android.c
  143. net-checksum.c
  144. net.c
  145. net.h
  146. NOTICE
  147. notify.c
  148. notify.h
  149. offset_layout.py
  150. osdep.c
  151. osdep.h
  152. path.c
  153. poison.h
  154. ppc-dis.c
  155. ppc.ld
  156. qbool.c
  157. qbool.h
  158. qdict.c
  159. qdict.h
  160. qemu-aio.h
  161. qemu-barrier.h
  162. qemu-char-android.c
  163. qemu-char.c
  164. qemu-char.h
  165. qemu-common.h
  166. qemu-config.c
  167. qemu-config.h
  168. qemu-error.c
  169. qemu-error.h
  170. qemu-io.c
  171. qemu-lock.h
  172. qemu-log.h
  173. qemu-malloc.c
  174. qemu-monitor.hx
  175. qemu-objects.h
  176. qemu-option.c
  177. qemu-option.h
  178. qemu-options.hx
  179. qemu-queue.h
  180. qemu-sockets-android.c
  181. qemu-sockets.c
  182. qemu-thread.c
  183. qemu-thread.h
  184. qemu-timer-ui.c
  185. qemu-timer.c
  186. qemu-timer.h
  187. qemu_debug.h
  188. qemu_file.h
  189. qemu_socket.h
  190. qemu_timers.h
  191. qerror.c
  192. qerror.h
  193. qfloat.c
  194. qfloat.h
  195. qint.c
  196. qint.h
  197. qjson.c
  198. qjson.h
  199. qlist.c
  200. qlist.h
  201. qobject.h
  202. qstring.c
  203. qstring.h
  204. readline.c
  205. readline.h
  206. README
  207. savevm.c
  208. sdl_keysym.h
  209. shaper.c
  210. shaper.h
  211. sockets.c
  212. sockets.h
  213. softmmu-semi.h
  214. softmmu_defs.h
  215. softmmu_exec.h
  216. softmmu_header.h
  217. softmmu_outside_jit.c
  218. softmmu_outside_jit.h
  219. softmmu_template.h
  220. sparc.ld
  221. sys-tree.h
  222. sysemu.h
  223. tap-win32.c
  224. targphys.h
  225. tcpdump.c
  226. tcpdump.h
  227. thunk.c
  228. thunk.h
  229. trace.c
  230. trace.h
  231. trace_common.h
  232. translate-all.c
  233. translate-op.c
  234. translate.make
  235. uboot_image.h
  236. usb-dummy-android.c
  237. usb-linux.c
  238. user-events-qemu.c
  239. user-events-ui.c
  240. user-events.h
  241. varint.c
  242. varint.h
  243. vgafont.h
  244. vl-android-ui.c
  245. vl-android.c
  246. vl.c
  247. vnc-android.c
  248. vnc-tls.h
  249. vnc.c
  250. vnc.h
  251. vnc_keysym.h
  252. vnchextile.h
  253. x86_64.ld