Revision 582798b5 hw/pxa2xx_keypad.c

b/hw/pxa2xx_keypad.c
83 83
    qemu_irq    irq;
84 84
    struct  keymap *map;
85 85
    int         pressed_cnt;
86
    int         alt_code;
86 87

  
87 88
    uint32_t    kpc;
88 89
    uint32_t    kpdk;
......
116 117
    int row, col, rel, assert_irq = 0;
117 118
    uint32_t val;
118 119

  
120
    if (keycode == 0xe0) {
121
        kp->alt_code = 1;
122
        return;
123
    }
124

  
119 125
    if(!(kp->kpc & KPC_ME)) /* skip if not enabled */
120 126
        return;
121 127

  
......
125 131

  
126 132
        rel = (keycode & 0x80) ? 1 : 0; /* key release from qemu */
127 133
        keycode &= ~(0x80); /* strip qemu key release bit */
134
        if (kp->alt_code) {
135
            keycode |= 0x80;
136
            kp->alt_code = 0;
137
        }
128 138

  
129 139
        row = kp->map[keycode].row;
130 140
        col = kp->map[keycode].column;

Also available in: Unified diff