]> git.proxmox.com Git - mirror_qemu.git/commitdiff
wm8750: add record buffer underrun check
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 1 Sep 2017 13:14:09 +0000 (15:14 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 18 Sep 2017 11:13:32 +0000 (13:13 +0200)
Reported-by: niuguoxiang@huawei.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20170901131409.6712-1-kraxel@redhat.com

hw/audio/wm8750.c

index f8b5bebfc230d403dd7f50457833f3551c65527e..d2bf2e1da19e504240b44a136f2442d36ce135e7 100644 (file)
@@ -680,8 +680,12 @@ uint32_t wm8750_adc_dat(void *opaque)
     WM8750State *s = (WM8750State *) opaque;
     uint32_t *data;
 
-    if (s->idx_in >= sizeof(s->data_in))
+    if (s->idx_in >= sizeof(s->data_in)) {
         wm8750_in_load(s);
+        if (s->idx_in >= sizeof(s->data_in)) {
+            return 0x80008000; /* silence in AUD_FMT_S16 sample format */
+        }
+    }
 
     data = (uint32_t *) &s->data_in[s->idx_in];
     s->req_in -= 4;