On Sun, Feb 11, 2018 at 09:32:14AM +1100, David Gibson wrote: > On Fri, Feb 09, 2018 at 06:51:35PM +0000, Mark Cave-Ayland wrote: > > This allows us to more easily differentiate between the timebase frequency > > used > > to calibrate the MacOS timers and the actual frequency of the hardware > > clock as > > indicated by CUDA_TIMER_FREQ. > > > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> > > Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > > Applied, thanks.
Actually, this patch doesn't compile, because you've changed ti->frequency in a couple of places where you should only be changing s->frequency. I've fixed it up in my tree. > > > --- > > hw/misc/macio/cuda.c | 10 +++++----- > > hw/misc/macio/macio.c | 2 +- > > hw/ppc/mac.h | 2 +- > > 3 files changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c > > index a88535fa66..232b7f61aa 100644 > > --- a/hw/misc/macio/cuda.c > > +++ b/hw/misc/macio/cuda.c > > @@ -158,8 +158,8 @@ static unsigned int get_counter(CUDAState *s, CUDATimer > > *ti) > > uint64_t current_time = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); > > > > /* Reverse of the tb calculation algorithm that Mac OS X uses on > > bootup. */ > > - tb_diff = get_tb(current_time, ti->frequency) - ti->load_time; > > - d = (tb_diff * 0xBF401675E5DULL) / (ti->frequency << 24); > > + tb_diff = get_tb(current_time, ti->tb_frequency) - ti->load_time; > > + d = (tb_diff * 0xBF401675E5DULL) / (ti->tb_frequency << 24); > > > > if (ti->index == 0) { > > /* the timer goes down from latch to -1 (period of latch + 2) */ > > @@ -179,7 +179,7 @@ static void set_counter(CUDAState *s, CUDATimer *ti, > > unsigned int val) > > { > > CUDA_DPRINTF("T%d.counter=%d\n", 1 + ti->index, val); > > ti->load_time = get_tb(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), > > - s->frequency); > > + s->tb_frequency); > > ti->counter_value = val; > > cuda_timer_update(s, ti, ti->load_time); > > } > > @@ -878,7 +878,7 @@ static void cuda_realizefn(DeviceState *dev, Error > > **errp) > > struct tm tm; > > > > s->timers[0].timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_timer1, s); > > - s->timers[0].frequency = s->frequency; > > + s->timers[0].frequency = s->tb_frequency; > > s->timers[1].timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_timer2, s); > > s->timers[1].frequency = (SCALE_US * 6000) / 4700; > > > > @@ -909,7 +909,7 @@ static void cuda_initfn(Object *obj) > > } > > > > static Property cuda_properties[] = { > > - DEFINE_PROP_UINT64("frequency", CUDAState, frequency, 0), > > + DEFINE_PROP_UINT64("timebase-frequency", CUDAState, tb_frequency, 0), > > DEFINE_PROP_END_OF_LIST() > > }; > > > > diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c > > index 44f91d1e7f..a639b09e00 100644 > > --- a/hw/misc/macio/macio.c > > +++ b/hw/misc/macio/macio.c > > @@ -451,7 +451,7 @@ void macio_init(PCIDevice *d, > > macio_state->escc_mem = escc_mem; > > /* Note: this code is strongly inspirated from the corresponding code > > in PearPC */ > > - qdev_prop_set_uint64(DEVICE(&macio_state->cuda), "frequency", > > + qdev_prop_set_uint64(DEVICE(&macio_state->cuda), "timebase-frequency", > > macio_state->frequency); > > > > qdev_init_nofail(DEVICE(d)); > > diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h > > index b501af1653..fa78115c95 100644 > > --- a/hw/ppc/mac.h > > +++ b/hw/ppc/mac.h > > @@ -99,7 +99,7 @@ typedef struct CUDAState { > > CUDATimer timers[2]; > > > > uint32_t tick_offset; > > - uint64_t frequency; > > + uint64_t tb_frequency; > > > > uint8_t last_b; > > uint8_t last_acr; > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature