Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Input: cros_ec_keyb - simplify cros_ec_keyb_work()

Introduce temporaries for event_data pointer and event_size to simplify
the code a bit.

In cros_ec_keyb_compute_valid_keys() explicitly compare with
KEY_RESERVED to make the intent of the comparison more clear.

Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
Link: https://patch.msgid.link/20260222003717.471977-5-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

+15 -15
+15 -15
drivers/input/keyboard/cros_ec_keyb.c
··· 330 330 { 331 331 struct cros_ec_keyb *ckdev = container_of(nb, struct cros_ec_keyb, 332 332 notifier); 333 - u32 val; 333 + struct ec_response_get_next_event_v3 *event_data; 334 + unsigned int event_size; 334 335 unsigned int ev_type; 336 + u32 val; 335 337 336 338 /* 337 339 * If not wake enabled, discard key state changes during ··· 343 341 if (queued_during_suspend && !device_may_wakeup(ckdev->dev)) 344 342 return NOTIFY_OK; 345 343 346 - switch (ckdev->ec->event_data.event_type) { 344 + event_data = &ckdev->ec->event_data; 345 + event_size = ckdev->ec->event_size; 346 + 347 + switch (event_data->event_type) { 347 348 case EC_MKBP_EVENT_KEY_MATRIX: 348 349 pm_wakeup_event(ckdev->dev, 0); 349 350 350 351 if (!ckdev->idev) { 351 - dev_warn_once(ckdev->dev, 352 - "Unexpected key matrix event\n"); 352 + dev_warn_once(ckdev->dev, "Unexpected key matrix event\n"); 353 353 return NOTIFY_OK; 354 354 } 355 355 356 - if (ckdev->ec->event_size != ckdev->cols) { 356 + if (event_size != ckdev->cols) { 357 357 dev_err(ckdev->dev, 358 358 "Discarded key matrix event, unexpected length: %d != %d\n", 359 359 ckdev->ec->event_size, ckdev->cols); 360 360 return NOTIFY_OK; 361 361 } 362 362 363 - cros_ec_keyb_process(ckdev, 364 - ckdev->ec->event_data.data.key_matrix, 365 - ckdev->ec->event_size); 363 + cros_ec_keyb_process(ckdev, event_data->data.key_matrix, event_size); 366 364 break; 367 365 368 366 case EC_MKBP_EVENT_SYSRQ: 369 367 pm_wakeup_event(ckdev->dev, 0); 370 368 371 - val = get_unaligned_le32(&ckdev->ec->event_data.data.sysrq); 369 + val = get_unaligned_le32(&event_data->data.sysrq); 372 370 dev_dbg(ckdev->dev, "sysrq code from EC: %#x\n", val); 373 371 handle_sysrq(val); 374 372 break; ··· 377 375 case EC_MKBP_EVENT_SWITCH: 378 376 pm_wakeup_event(ckdev->dev, 0); 379 377 380 - if (ckdev->ec->event_data.event_type == EC_MKBP_EVENT_BUTTON) { 381 - val = get_unaligned_le32( 382 - &ckdev->ec->event_data.data.buttons); 378 + if (event_data->event_type == EC_MKBP_EVENT_BUTTON) { 379 + val = get_unaligned_le32(&event_data->data.buttons); 383 380 ev_type = EV_KEY; 384 381 } else { 385 - val = get_unaligned_le32( 386 - &ckdev->ec->event_data.data.switches); 382 + val = get_unaligned_le32(&event_data->data.switches); 387 383 ev_type = EV_SW; 388 384 } 389 385 cros_ec_keyb_report_bs(ckdev, ev_type, val); ··· 410 410 for (col = 0; col < ckdev->cols; col++) { 411 411 for (row = 0; row < ckdev->rows; row++) { 412 412 code = keymap[MATRIX_SCAN_CODE(row, col, row_shift)]; 413 - if (code && (code != KEY_BATTERY)) 413 + if (code != KEY_RESERVED && code != KEY_BATTERY) 414 414 ckdev->valid_keys[col] |= BIT(row); 415 415 } 416 416 dev_dbg(ckdev->dev, "valid_keys[%02d] = 0x%02x\n",