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

mantis_input.c (1813B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/*
      3	Mantis PCI bridge driver
      4
      5	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
      6
      7*/
      8
      9#include <media/rc-core.h>
     10#include <linux/pci.h>
     11
     12#include <media/dmxdev.h>
     13#include <media/dvbdev.h>
     14#include <media/dvb_demux.h>
     15#include <media/dvb_frontend.h>
     16#include <media/dvb_net.h>
     17
     18#include "mantis_common.h"
     19#include "mantis_input.h"
     20
     21#define MODULE_NAME "mantis_core"
     22
     23void mantis_input_process(struct mantis_pci *mantis, int scancode)
     24{
     25	if (mantis->rc)
     26		rc_keydown(mantis->rc, RC_PROTO_UNKNOWN, scancode, 0);
     27}
     28
     29int mantis_input_init(struct mantis_pci *mantis)
     30{
     31	struct rc_dev *dev;
     32	int err;
     33
     34	dev = rc_allocate_device(RC_DRIVER_SCANCODE);
     35	if (!dev) {
     36		dprintk(MANTIS_ERROR, 1, "Remote device allocation failed");
     37		err = -ENOMEM;
     38		goto out;
     39	}
     40
     41	snprintf(mantis->device_name, sizeof(mantis->device_name),
     42		 "Mantis %s IR receiver", mantis->hwconfig->model_name);
     43	snprintf(mantis->input_phys, sizeof(mantis->input_phys),
     44		 "pci-%s/ir0", pci_name(mantis->pdev));
     45
     46	dev->device_name        = mantis->device_name;
     47	dev->input_phys         = mantis->input_phys;
     48	dev->input_id.bustype   = BUS_PCI;
     49	dev->input_id.vendor    = mantis->vendor_id;
     50	dev->input_id.product   = mantis->device_id;
     51	dev->input_id.version   = 1;
     52	dev->driver_name        = MODULE_NAME;
     53	dev->map_name           = mantis->rc_map_name ? : RC_MAP_EMPTY;
     54	dev->dev.parent         = &mantis->pdev->dev;
     55
     56	err = rc_register_device(dev);
     57	if (err) {
     58		dprintk(MANTIS_ERROR, 1, "IR device registration failed, ret = %d", err);
     59		goto out_dev;
     60	}
     61
     62	mantis->rc = dev;
     63	return 0;
     64
     65out_dev:
     66	rc_free_device(dev);
     67out:
     68	return err;
     69}
     70EXPORT_SYMBOL_GPL(mantis_input_init);
     71
     72void mantis_input_exit(struct mantis_pci *mantis)
     73{
     74	rc_unregister_device(mantis->rc);
     75}
     76EXPORT_SYMBOL_GPL(mantis_input_exit);