| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Helpers for ChromeOS Vivaldi keyboard function row mapping |
| * |
| * Copyright (C) 2022 Google, Inc |
| */ |
| |
| #include <linux/export.h> |
| #include <linux/input/vivaldi-fmap.h> |
| #include <linux/kernel.h> |
| #include <linux/module.h> |
| #include <linux/types.h> |
| |
| /** |
| * vivaldi_function_row_physmap_show - Print vivaldi function row physmap attribute |
| * @data: The vivaldi function row map |
| * @buf: Buffer to print the function row phsymap to |
| */ |
| ssize_t vivaldi_function_row_physmap_show(const struct vivaldi_data *data, |
| char *buf) |
| { |
| ssize_t size = 0; |
| int i; |
| const u32 *physmap = data->function_row_physmap; |
| |
| if (!data->num_function_row_keys) |
| return 0; |
| |
| for (i = 0; i < data->num_function_row_keys; i++) |
| size += scnprintf(buf + size, PAGE_SIZE - size, |
| "%s%02X", size ? " " : "", physmap[i]); |
| if (size) |
| size += scnprintf(buf + size, PAGE_SIZE - size, "\n"); |
| |
| return size; |
| } |
| EXPORT_SYMBOL_GPL(vivaldi_function_row_physmap_show); |
| |
| MODULE_LICENSE("GPL"); |