Commit cf6d911814c0278c1dae48b78359ee90215a13e6

Authored by balrog
1 parent 2e8c1917

Fix OMAP1 MPUI/O keyboard interrupt masking.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3796 c046a42c-6fe2-441c-8c8c-71466251a162
hw/flash.h
@@ -10,7 +10,7 @@ pflash_t *pflash_cfi01_register(target_phys_addr_t base, ram_addr_t off, @@ -10,7 +10,7 @@ pflash_t *pflash_cfi01_register(target_phys_addr_t base, ram_addr_t off,
10 10
11 /* pflash_cfi02.c */ 11 /* pflash_cfi02.c */
12 pflash_t *pflash_cfi02_register(target_phys_addr_t base, ram_addr_t off, 12 pflash_t *pflash_cfi02_register(target_phys_addr_t base, ram_addr_t off,
13 - BlockDriverState *bs, target_ulong sector_len, 13 + BlockDriverState *bs, uint32_t sector_len,
14 int nb_blocs, int width, 14 int nb_blocs, int width,
15 uint16_t id0, uint16_t id1, 15 uint16_t id0, uint16_t id1,
16 uint16_t id2, uint16_t id3); 16 uint16_t id2, uint16_t id3);
hw/omap.c
@@ -3576,8 +3576,8 @@ static void omap_mpuio_kbd_update(struct omap_mpuio_s *s) @@ -3576,8 +3576,8 @@ static void omap_mpuio_kbd_update(struct omap_mpuio_s *s)
3576 if (*row & cols) 3576 if (*row & cols)
3577 rows |= i; 3577 rows |= i;
3578 3578
3579 - qemu_set_irq(s->kbd_irq, rows && ~s->kbd_mask && s->clk);  
3580 - s->row_latch = rows ^ 0x1f; 3579 + qemu_set_irq(s->kbd_irq, rows && !s->kbd_mask && s->clk);
  3580 + s->row_latch = ~rows;
3581 } 3581 }
3582 3582
3583 static uint32_t omap_mpuio_read(void *opaque, target_phys_addr_t addr) 3583 static uint32_t omap_mpuio_read(void *opaque, target_phys_addr_t addr)
@@ -3609,7 +3609,7 @@ static uint32_t omap_mpuio_read(void *opaque, target_phys_addr_t addr) @@ -3609,7 +3609,7 @@ static uint32_t omap_mpuio_read(void *opaque, target_phys_addr_t addr)
3609 return s->edge; 3609 return s->edge;
3610 3610
3611 case 0x20: /* KBD_INT */ 3611 case 0x20: /* KBD_INT */
3612 - return (s->row_latch != 0x1f) && !s->kbd_mask; 3612 + return (~s->row_latch & 0x1f) && !s->kbd_mask;
3613 3613
3614 case 0x24: /* GPIO_INT */ 3614 case 0x24: /* GPIO_INT */
3615 ret = s->ints; 3615 ret = s->ints;
hw/pflash_cfi02.c
@@ -525,7 +525,7 @@ static int ctz32 (uint32_t n) @@ -525,7 +525,7 @@ static int ctz32 (uint32_t n)
525 } 525 }
526 526
527 pflash_t *pflash_cfi02_register(target_phys_addr_t base, ram_addr_t off, 527 pflash_t *pflash_cfi02_register(target_phys_addr_t base, ram_addr_t off,
528 - BlockDriverState *bs, target_ulong sector_len, 528 + BlockDriverState *bs, uint32_t sector_len,
529 int nb_blocs, int width, 529 int nb_blocs, int width,
530 uint16_t id0, uint16_t id1, 530 uint16_t id0, uint16_t id1,
531 uint16_t id2, uint16_t id3) 531 uint16_t id2, uint16_t id3)