cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hid-vivaldi.c (1221B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * HID support for Vivaldi Keyboard
      4 *
      5 * Copyright 2020 Google LLC.
      6 * Author: Sean O'Brien <seobrien@chromium.org>
      7 */
      8
      9#include <linux/device.h>
     10#include <linux/hid.h>
     11#include <linux/input/vivaldi-fmap.h>
     12#include <linux/kernel.h>
     13#include <linux/module.h>
     14
     15#include "hid-vivaldi-common.h"
     16
     17static int vivaldi_probe(struct hid_device *hdev,
     18			 const struct hid_device_id *id)
     19{
     20	struct vivaldi_data *drvdata;
     21	int ret;
     22
     23	drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
     24	if (!drvdata)
     25		return -ENOMEM;
     26
     27	hid_set_drvdata(hdev, drvdata);
     28
     29	ret = hid_parse(hdev);
     30	if (ret)
     31		return ret;
     32
     33	return hid_hw_start(hdev, HID_CONNECT_DEFAULT);
     34}
     35
     36static const struct hid_device_id vivaldi_table[] = {
     37	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_VIVALDI, HID_ANY_ID, HID_ANY_ID) },
     38	{ }
     39};
     40
     41MODULE_DEVICE_TABLE(hid, vivaldi_table);
     42
     43static struct hid_driver hid_vivaldi = {
     44	.name = "hid-vivaldi",
     45	.id_table = vivaldi_table,
     46	.probe = vivaldi_probe,
     47	.feature_mapping = vivaldi_feature_mapping,
     48	.input_configured = vivaldi_input_configured,
     49};
     50
     51module_hid_driver(hid_vivaldi);
     52
     53MODULE_AUTHOR("Sean O'Brien");
     54MODULE_DESCRIPTION("HID vivaldi driver");
     55MODULE_LICENSE("GPL");