Commit 565d28951e971abf342fcc8701861163b7421f23

Authored by balrog
1 parent d95b2f8d

Set OOK when OON is set in OSCC register (thanks to BobOfDoom). Correct a fatal typo in timer code.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2785 c046a42c-6fe2-441c-8c8c-71466251a162
hw/pxa2xx.c
@@ -168,8 +168,10 @@ static void pxa2xx_cm_write(void *opaque, target_phys_addr_t addr, @@ -168,8 +168,10 @@ static void pxa2xx_cm_write(void *opaque, target_phys_addr_t addr,
168 break; 168 break;
169 169
170 case OSCC: 170 case OSCC:
171 - s->cm_regs[addr >> 2] &= ~0x6e; 171 + s->cm_regs[addr >> 2] &= ~0x6c;
172 s->cm_regs[addr >> 2] |= value & 0x6e; 172 s->cm_regs[addr >> 2] |= value & 0x6e;
  173 + if ((value >> 1) & 1) /* OON */
  174 + s->cm_regs[addr >> 2] |= 1 << 0; /* Oscillator is now stable */
173 break; 175 break;
174 176
175 default: 177 default:
hw/pxa2xx_timer.c
@@ -364,7 +364,7 @@ static void pxa2xx_timer_tick4(void *opaque) @@ -364,7 +364,7 @@ static void pxa2xx_timer_tick4(void *opaque)
364 struct pxa2xx_timer4_s *t = (struct pxa2xx_timer4_s *) opaque; 364 struct pxa2xx_timer4_s *t = (struct pxa2xx_timer4_s *) opaque;
365 pxa2xx_timer_info *i = (pxa2xx_timer_info *) t->info; 365 pxa2xx_timer_info *i = (pxa2xx_timer_info *) t->info;
366 366
367 - pxa2xx_timer_tick4(opaque); 367 + pxa2xx_timer_tick(opaque);
368 if (t->control & (1 << 3)) 368 if (t->control & (1 << 3))
369 t->clock = 0; 369 t->clock = 0;
370 if (t->control & (1 << 6)) 370 if (t->control & (1 << 6))