vivaldi-fmap.c 1000 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Helpers for ChromeOS Vivaldi keyboard function row mapping
  4. *
  5. * Copyright (C) 2022 Google, Inc
  6. */
  7. #include <linux/export.h>
  8. #include <linux/input/vivaldi-fmap.h>
  9. #include <linux/kernel.h>
  10. #include <linux/module.h>
  11. #include <linux/types.h>
  12. /**
  13. * vivaldi_function_row_physmap_show - Print vivaldi function row physmap attribute
  14. * @data: The vivaldi function row map
  15. * @buf: Buffer to print the function row phsymap to
  16. */
  17. ssize_t vivaldi_function_row_physmap_show(const struct vivaldi_data *data,
  18. char *buf)
  19. {
  20. ssize_t size = 0;
  21. int i;
  22. const u32 *physmap = data->function_row_physmap;
  23. if (!data->num_function_row_keys)
  24. return 0;
  25. for (i = 0; i < data->num_function_row_keys; i++)
  26. size += scnprintf(buf + size, PAGE_SIZE - size,
  27. "%s%02X", size ? " " : "", physmap[i]);
  28. if (size)
  29. size += scnprintf(buf + size, PAGE_SIZE - size, "\n");
  30. return size;
  31. }
  32. EXPORT_SYMBOL_GPL(vivaldi_function_row_physmap_show);
  33. MODULE_LICENSE("GPL");