Commit cf6d911814c0278c1dae48b78359ee90215a13e6
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
Showing
3 changed files
with
5 additions
and
5 deletions
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) |