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

Input: synaptics-rmi4 - remove unneeded struct register_offset

All register offsets are fixed, and a number of places even read or
write multiple registers as a block, so there is no way to support
reordering them without move involved changes. Remove the unneeded level
of indirection in the register access.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://lore.kernel.org/r/20220608124808.51402-8-matthias.schiffer@ew.tq-group.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Matthias Schiffer and committed by
Dmitry Torokhov
b077d523 d8d007f2

+15 -37
+1 -1
drivers/input/rmi4/rmi_f34.c
··· 115 115 } else { 116 116 ret = rmi_read_block(f34->fn->rmi_dev, 117 117 f34->fn->fd.data_base_addr + 118 - f34->v7.off.flash_cmd, 118 + V7_COMMAND_OFFSET, 119 119 &status, sizeof(status)); 120 120 rmi_dbg(RMI_DEBUG_FN, &f34->fn->dev, "%s: cmd: %#02x, ret: %d\n", 121 121 __func__, status, ret);
-15
drivers/input/rmi4/rmi_f34.h
··· 222 222 struct physical_address phyaddr; 223 223 }; 224 224 225 - struct register_offset { 226 - u8 properties; 227 - u8 properties_2; 228 - u8 block_size; 229 - u8 block_count; 230 - u8 gc_block_count; 231 - u8 flash_status; 232 - u8 partition_id; 233 - u8 block_number; 234 - u8 transfer_length; 235 - u8 flash_cmd; 236 - u8 payload; 237 - }; 238 - 239 225 struct rmi_f34_firmware { 240 226 __le32 checksum; 241 227 u8 pad1[3]; ··· 262 276 u8 partitions; 263 277 u16 partition_table_bytes; 264 278 265 - struct register_offset off; 266 279 struct block_count blkcount; 267 280 struct physical_address phyaddr; 268 281 struct image_metadata img;
+14 -21
drivers/input/rmi4/rmi_f34v7.c
··· 25 25 int ret; 26 26 27 27 ret = rmi_read_block(f34->fn->rmi_dev, 28 - f34->fn->fd.data_base_addr + f34->v7.off.flash_status, 28 + f34->fn->fd.data_base_addr + V7_FLASH_STATUS_OFFSET, 29 29 &status, 30 30 sizeof(status)); 31 31 if (ret < 0) { ··· 43 43 } 44 44 45 45 ret = rmi_read_block(f34->fn->rmi_dev, 46 - f34->fn->fd.data_base_addr + f34->v7.off.flash_cmd, 46 + f34->fn->fd.data_base_addr + V7_COMMAND_OFFSET, 47 47 &command, 48 48 sizeof(command)); 49 49 if (ret < 0) { ··· 140 140 data_1_5.payload[1] = f34->bootloader_id[1]; 141 141 142 142 ret = rmi_write_block(f34->fn->rmi_dev, 143 - base + f34->v7.off.partition_id, 143 + base + V7_PARTITION_ID_OFFSET, 144 144 &data_1_5, sizeof(data_1_5)); 145 145 if (ret < 0) { 146 146 dev_err(&f34->fn->dev, ··· 213 213 __func__, command); 214 214 215 215 ret = rmi_write_block(f34->fn->rmi_dev, 216 - base + f34->v7.off.flash_cmd, 216 + base + V7_COMMAND_OFFSET, 217 217 &command, sizeof(command)); 218 218 if (ret < 0) { 219 219 dev_err(&f34->fn->dev, "%s: Failed to write flash command\n", ··· 280 280 } 281 281 282 282 ret = rmi_write_block(f34->fn->rmi_dev, 283 - base + f34->v7.off.partition_id, 283 + base + V7_PARTITION_ID_OFFSET, 284 284 &partition, sizeof(partition)); 285 285 if (ret < 0) { 286 286 dev_err(&f34->fn->dev, "%s: Failed to write partition ID\n", ··· 308 308 return ret; 309 309 310 310 ret = rmi_write_block(f34->fn->rmi_dev, 311 - base + f34->v7.off.block_number, 311 + base + V7_BLOCK_NUMBER_OFFSET, 312 312 &block_number, sizeof(block_number)); 313 313 if (ret < 0) { 314 314 dev_err(&f34->fn->dev, "%s: Failed to write block number\n", ··· 319 319 put_unaligned_le16(f34->v7.flash_config_length, &length); 320 320 321 321 ret = rmi_write_block(f34->fn->rmi_dev, 322 - base + f34->v7.off.transfer_length, 322 + base + V7_TRANSFER_LENGTH_OFFSET, 323 323 &length, sizeof(length)); 324 324 if (ret < 0) { 325 325 dev_err(&f34->fn->dev, "%s: Failed to write transfer length\n", ··· 352 352 } 353 353 354 354 ret = rmi_read_block(f34->fn->rmi_dev, 355 - base + f34->v7.off.payload, 355 + base + V7_PAYLOAD_OFFSET, 356 356 f34->v7.read_config_buf, 357 357 f34->v7.partition_table_bytes); 358 358 if (ret < 0) { ··· 526 526 rmi_dbg(RMI_DEBUG_FN, &f34->fn->dev, "%s: f34->v7.block_size = %d\n", 527 527 __func__, f34->v7.block_size); 528 528 529 - f34->v7.off.flash_status = V7_FLASH_STATUS_OFFSET; 530 - f34->v7.off.partition_id = V7_PARTITION_ID_OFFSET; 531 - f34->v7.off.block_number = V7_BLOCK_NUMBER_OFFSET; 532 - f34->v7.off.transfer_length = V7_TRANSFER_LENGTH_OFFSET; 533 - f34->v7.off.flash_cmd = V7_COMMAND_OFFSET; 534 - f34->v7.off.payload = V7_PAYLOAD_OFFSET; 535 - 536 529 f34->v7.has_display_cfg = query_1_7.partition_support[1] & HAS_DISP_CFG; 537 530 f34->v7.has_guest_code = 538 531 query_1_7.partition_support[1] & HAS_GUEST_CODE; ··· 639 646 return ret; 640 647 641 648 ret = rmi_write_block(f34->fn->rmi_dev, 642 - base + f34->v7.off.block_number, 649 + base + V7_BLOCK_NUMBER_OFFSET, 643 650 &block_number, sizeof(block_number)); 644 651 if (ret < 0) { 645 652 dev_err(&f34->fn->dev, "%s: Failed to write block number\n", ··· 655 662 put_unaligned_le16(transfer, &length); 656 663 657 664 ret = rmi_write_block(f34->fn->rmi_dev, 658 - base + f34->v7.off.transfer_length, 665 + base + V7_TRANSFER_LENGTH_OFFSET, 659 666 &length, sizeof(length)); 660 667 if (ret < 0) { 661 668 dev_err(&f34->fn->dev, ··· 675 682 return ret; 676 683 677 684 ret = rmi_read_block(f34->fn->rmi_dev, 678 - base + f34->v7.off.payload, 685 + base + V7_PAYLOAD_OFFSET, 679 686 &f34->v7.read_config_buf[index], 680 687 transfer * f34->v7.block_size); 681 688 if (ret < 0) { ··· 711 718 return ret; 712 719 713 720 ret = rmi_write_block(f34->fn->rmi_dev, 714 - base + f34->v7.off.block_number, 721 + base + V7_BLOCK_NUMBER_OFFSET, 715 722 &block_number, sizeof(block_number)); 716 723 if (ret < 0) { 717 724 dev_err(&f34->fn->dev, "%s: Failed to write block number\n", ··· 731 738 init_completion(&f34->v7.cmd_done); 732 739 733 740 ret = rmi_write_block(f34->fn->rmi_dev, 734 - base + f34->v7.off.transfer_length, 741 + base + V7_TRANSFER_LENGTH_OFFSET, 735 742 &length, sizeof(length)); 736 743 if (ret < 0) { 737 744 dev_err(&f34->fn->dev, ··· 745 752 return ret; 746 753 747 754 ret = rmi_write_block(f34->fn->rmi_dev, 748 - base + f34->v7.off.payload, 755 + base + V7_PAYLOAD_OFFSET, 749 756 block_ptr, transfer * f34->v7.block_size); 750 757 if (ret < 0) { 751 758 dev_err(&f34->fn->dev,