Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Helpers for ChromeOS Vivaldi keyboard function row mapping
0004  *
0005  * Copyright (C) 2022 Google, Inc
0006  */
0007 
0008 #include <linux/export.h>
0009 #include <linux/input/vivaldi-fmap.h>
0010 #include <linux/kernel.h>
0011 #include <linux/module.h>
0012 #include <linux/types.h>
0013 
0014 /**
0015  * vivaldi_function_row_physmap_show - Print vivaldi function row physmap attribute
0016  * @data: The vivaldi function row map
0017  * @buf: Buffer to print the function row phsymap to
0018  */
0019 ssize_t vivaldi_function_row_physmap_show(const struct vivaldi_data *data,
0020                       char *buf)
0021 {
0022     ssize_t size = 0;
0023     int i;
0024     const u32 *physmap = data->function_row_physmap;
0025 
0026     if (!data->num_function_row_keys)
0027         return 0;
0028 
0029     for (i = 0; i < data->num_function_row_keys; i++)
0030         size += scnprintf(buf + size, PAGE_SIZE - size,
0031                   "%s%02X", size ? " " : "", physmap[i]);
0032     if (size)
0033         size += scnprintf(buf + size, PAGE_SIZE - size, "\n");
0034 
0035     return size;
0036 }
0037 EXPORT_SYMBOL_GPL(vivaldi_function_row_physmap_show);
0038 
0039 MODULE_LICENSE("GPL");