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

amd_sfh_hid_desc.h (2935B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * HID report descriptors, structures and routines
      4 * Copyright 2020-2021 Advanced Micro Devices, Inc.
      5 * Authors: Nehal Bakulchandra Shah <Nehal-bakulchandra.shah@amd.com>
      6 *	    Sandeep Singh <Sandeep.singh@amd.com>
      7 *	    Basavaraj Natikar <Basavaraj.Natikar@amd.com>
      8 */
      9
     10#ifndef AMD_SFH_HID_DESCRIPTOR_H
     11#define AMD_SFH_HID_DESCRIPTOR_H
     12
     13enum desc_type {
     14	/* Report descriptor name */
     15	descr_size = 1,
     16	input_size,
     17	feature_size,
     18};
     19
     20struct common_feature_property {
     21	/* common properties */
     22	u8 report_id;
     23	u8 connection_type;
     24	u8 report_state;
     25	u8 power_state;
     26	u8 sensor_state;
     27	u32 report_interval;
     28} __packed;
     29
     30struct common_input_property {
     31	/* common properties */
     32	u8 report_id;
     33	u8 sensor_state;
     34	u8 event_type;
     35} __packed;
     36
     37struct accel3_feature_report {
     38	struct common_feature_property common_property;
     39	/* properties specific to this sensor */
     40	u16 accel_change_sesnitivity;
     41	s16 accel_sensitivity_max;
     42	s16 accel_sensitivity_min;
     43} __packed;
     44
     45struct accel3_input_report {
     46	struct	common_input_property common_property;
     47	/* values specific to this sensor */
     48	int in_accel_x_value;
     49	int in_accel_y_value;
     50	int in_accel_z_value;
     51	/* include if required to support the "shake" event */
     52	u8 in_accel_shake_detection;
     53} __packed;
     54
     55struct gyro_feature_report {
     56	struct common_feature_property common_property;
     57	/* properties specific to this sensor */
     58	u16 gyro_change_sesnitivity;
     59	s16 gyro_sensitivity_max;
     60	s16 gyro_sensitivity_min;
     61} __packed;
     62
     63struct gyro_input_report {
     64	struct	common_input_property common_property;
     65	/* values specific to this sensor */
     66	int in_angel_x_value;
     67	int in_angel_y_value;
     68	int in_angel_z_value;
     69} __packed;
     70
     71struct magno_feature_report {
     72	struct common_feature_property common_property;
     73	/*properties specific to this sensor */
     74	u16 magno_headingchange_sensitivity;
     75	s16 heading_min;
     76	s16 heading_max;
     77	u16 flux_change_sensitivity;
     78	s16 flux_min;
     79	s16 flux_max;
     80} __packed;
     81
     82struct magno_input_report {
     83	struct	common_input_property common_property;
     84	int in_magno_x;
     85	int in_magno_y;
     86	int in_magno_z;
     87	int in_magno_accuracy;
     88} __packed;
     89
     90struct als_feature_report {
     91	struct common_feature_property common_property;
     92	/* properties specific to this sensor */
     93	u16 als_change_sesnitivity;
     94	s16 als_sensitivity_max;
     95	s16 als_sensitivity_min;
     96} __packed;
     97
     98struct als_input_report {
     99	struct common_input_property common_property;
    100	/* values specific to this sensor */
    101	int illuminance_value;
    102} __packed;
    103
    104struct hpd_feature_report {
    105	struct common_feature_property common_property;
    106} __packed;
    107
    108struct hpd_input_report {
    109	struct common_input_property common_property;
    110	 /* values specific to human presence sensor */
    111	u8 human_presence;
    112} __packed;
    113
    114int get_report_descriptor(int sensor_idx, u8 rep_desc[]);
    115u32 get_descr_sz(int sensor_idx, int descriptor_name);
    116u8 get_feature_report(int sensor_idx, int report_id, u8 *feature_report);
    117#endif