On 25 August 2018 at 08:47, Paolo Bonzini <pbonz...@redhat.com> wrote: > They are not consecutive with DAC1_FRAME* and DAC2_FRAME*. > > Fixes: 154c1d1f960c5147a3f8ef00907504112f271cd8 > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/audio/es1370.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c > index dd75c9e8f5..4f980a598b 100644 > --- a/hw/audio/es1370.c > +++ b/hw/audio/es1370.c > @@ -506,10 +506,13 @@ static void es1370_write(void *opaque, hwaddr addr, > uint64_t val, unsigned size) > d - &s->chan[0], val >> 16, (val & 0xffff)); > break; > > + case ES1370_REG_ADC_FRAMEADR: > + d += 2; > + goto frameadr; > case ES1370_REG_DAC1_FRAMEADR: > case ES1370_REG_DAC2_FRAMEADR: > - case ES1370_REG_ADC_FRAMEADR: > d += (addr - ES1370_REG_DAC1_FRAMEADR) >> 3; > + frameadr: > d->frame_addr = val; > ldebug ("chan %td frame address %#x\n", d - &s->chan[0], val); > break; > @@ -521,10 +524,13 @@ static void es1370_write(void *opaque, hwaddr addr, > uint64_t val, unsigned size) > lwarn ("writing to phantom frame address %#x\n", val); > break; > > + case ES1370_REG_ADC_FRAMECNT: > + d += 2; > + goto framecnt; > case ES1370_REG_DAC1_FRAMECNT: > case ES1370_REG_DAC2_FRAMECNT: > - case ES1370_REG_ADC_FRAMECNT: > d += (addr - ES1370_REG_DAC1_FRAMECNT) >> 3; > + framecnt: > d->frame_cnt = val; > d->leftover = 0; > ldebug ("chan %td frame count %d, buffer size %d\n",
Hi Paolo; I've just noticed that this patch (now commit cf9270e522067) fixed the es1370_write() but left the code in es1370_read() unfixed. Coverity complains in CID 1395185 (though oddly only about the ADC_FRAMECNT case, not the ADC_FRAMEADR one). thanks -- PMM