In preparation of raising -Wimplicit-fallthrough to 5, replace all fall-through comments with the fallthrough attribute pseudo-keyword.
Signed-off-by: Emmanouil Pitsidianakis <manos.pitsidiana...@linaro.org> --- hw/input/hid.c | 3 ++- hw/input/tsc2005.c | 4 ++-- hw/input/tsc210x.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/input/hid.c b/hw/input/hid.c index a9c7dd1ce1..15fffc5dfb 100644 --- a/hw/input/hid.c +++ b/hw/input/hid.c @@ -250,88 +250,89 @@ static void hid_keyboard_event(DeviceState *dev, QemuConsole *src, static void hid_keyboard_process_keycode(HIDState *hs) { uint8_t hid_code, index, key; int i, keycode, slot; if (hs->n == 0) { return; } slot = hs->head & QUEUE_MASK; QUEUE_INCR(hs->head); hs->n--; keycode = hs->kbd.keycodes[slot]; if (!hs->n) { trace_hid_kbd_queue_empty(); } key = keycode & 0x7f; index = key | ((hs->kbd.modifiers & (1 << 8)) >> 1); hid_code = hid_usage_keys[index]; hs->kbd.modifiers &= ~(1 << 8); switch (hid_code) { case 0x00: return; case 0xe0: assert(key == 0x1d); if (hs->kbd.modifiers & (1 << 9)) { /* The hid_codes for the 0xe1/0x1d scancode sequence are 0xe9/0xe0. * Here we're processing the second hid_code. By dropping bit 9 * and setting bit 8, the scancode after 0x1d will access the * second half of the table. */ hs->kbd.modifiers ^= (1 << 8) | (1 << 9); return; } /* fall through to process Ctrl_L */ + fallthrough; case 0xe1 ... 0xe7: /* Ctrl_L/Ctrl_R, Shift_L/Shift_R, Alt_L/Alt_R, Win_L/Win_R. * Handle releases here, or fall through to process presses. */ if (keycode & (1 << 7)) { hs->kbd.modifiers &= ~(1 << (hid_code & 0x0f)); return; } - /* fall through */ + fallthrough; case 0xe8 ... 0xe9: /* USB modifiers are just 1 byte long. Bits 8 and 9 of * hs->kbd.modifiers implement a state machine that detects the * 0xe0 and 0xe1/0x1d sequences. These bits do not follow the * usual rules where bit 7 marks released keys; they are cleared * elsewhere in the function as the state machine dictates. */ hs->kbd.modifiers |= 1 << (hid_code & 0x0f); return; case 0xea ... 0xef: abort(); default: break; } if (keycode & (1 << 7)) { for (i = hs->kbd.keys - 1; i >= 0; i--) { if (hs->kbd.key[i] == hid_code) { hs->kbd.key[i] = hs->kbd.key[-- hs->kbd.keys]; hs->kbd.key[hs->kbd.keys] = 0x00; break; } } if (i < 0) { return; } } else { for (i = hs->kbd.keys - 1; i >= 0; i--) { if (hs->kbd.key[i] == hid_code) { break; } } if (i < 0) { if (hs->kbd.keys < sizeof(hs->kbd.key)) { hs->kbd.key[hs->kbd.keys++] = hid_code; } } else { return; } } } diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c index db2b80e35f..4f3f1d9d12 100644 --- a/hw/input/tsc2005.c +++ b/hw/input/tsc2005.c @@ -234,70 +234,70 @@ static void tsc2005_write(TSC2005State *s, int reg, uint16_t data) /* This handles most of the chip's logic. */ static void tsc2005_pin_update(TSC2005State *s) { int64_t expires; bool pin_state; switch (s->pin_func) { case 0: pin_state = !s->pressure && !!s->dav; break; case 1: case 3: default: pin_state = !s->dav; break; case 2: pin_state = !s->pressure; } if (pin_state != s->irq) { s->irq = pin_state; qemu_set_irq(s->pint, s->irq); } switch (s->nextfunction) { case TSC_MODE_XYZ_SCAN: case TSC_MODE_XY_SCAN: if (!s->host_mode && s->dav) s->enabled = false; if (!s->pressure) return; - /* Fall through */ + fallthrough; case TSC_MODE_AUX_SCAN: break; case TSC_MODE_X: case TSC_MODE_Y: case TSC_MODE_Z: if (!s->pressure) return; - /* Fall through */ + fallthrough; case TSC_MODE_AUX: case TSC_MODE_TEMP1: case TSC_MODE_TEMP2: case TSC_MODE_X_TEST: case TSC_MODE_Y_TEST: case TSC_MODE_TS_TEST: if (s->dav) s->enabled = false; break; case TSC_MODE_RESERVED: case TSC_MODE_XX_DRV: case TSC_MODE_YY_DRV: case TSC_MODE_YX_DRV: default: return; } if (!s->enabled || s->busy) return; s->busy = true; s->precision = s->nextprecision; s->function = s->nextfunction; s->pdst = !s->pnd0; /* Synchronised on internal clock */ expires = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + (NANOSECONDS_PER_SECOND >> 7); timer_mod(s->timer, expires); } diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c index 950506fb38..9ae426e1a6 100644 --- a/hw/input/tsc210x.c +++ b/hw/input/tsc210x.c @@ -774,70 +774,70 @@ static void tsc2102_audio_register_write( /* This handles most of the chip logic. */ static void tsc210x_pin_update(TSC210xState *s) { int64_t expires; bool pin_state; switch (s->pin_func) { case 0: pin_state = s->pressure; break; case 1: pin_state = !!s->dav; break; case 2: default: pin_state = s->pressure && !s->dav; } if (!s->enabled) pin_state = false; if (pin_state != s->irq) { s->irq = pin_state; qemu_set_irq(s->pint, !s->irq); } switch (s->nextfunction) { case TSC_MODE_XY_SCAN: case TSC_MODE_XYZ_SCAN: if (!s->pressure) return; break; case TSC_MODE_X: case TSC_MODE_Y: case TSC_MODE_Z: if (!s->pressure) return; - /* Fall through */ + fallthrough; case TSC_MODE_BAT1: case TSC_MODE_BAT2: case TSC_MODE_AUX: case TSC_MODE_TEMP1: case TSC_MODE_TEMP2: if (s->dav) s->enabled = false; break; case TSC_MODE_AUX_SCAN: case TSC_MODE_PORT_SCAN: break; case TSC_MODE_NO_SCAN: case TSC_MODE_XX_DRV: case TSC_MODE_YY_DRV: case TSC_MODE_YX_DRV: default: return; } if (!s->enabled || s->busy || s->dav) return; s->busy = true; s->precision = s->nextprecision; s->function = s->nextfunction; expires = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + (NANOSECONDS_PER_SECOND >> 10); timer_mod(s->timer, expires); } -- 2.39.2