1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * System Trace Module (STM) userspace interfaces 4*f80ad8b4SAndroid Build Coastguard Worker * Copyright (c) 2014, Intel Corporation. 5*f80ad8b4SAndroid Build Coastguard Worker * 6*f80ad8b4SAndroid Build Coastguard Worker * STM class implements generic infrastructure for System Trace Module devices 7*f80ad8b4SAndroid Build Coastguard Worker * as defined in MIPI STPv2 specification. 8*f80ad8b4SAndroid Build Coastguard Worker */ 9*f80ad8b4SAndroid Build Coastguard Worker 10*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_STM_H 11*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_STM_H 12*f80ad8b4SAndroid Build Coastguard Worker 13*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 14*f80ad8b4SAndroid Build Coastguard Worker 15*f80ad8b4SAndroid Build Coastguard Worker /* Maximum allowed master and channel values */ 16*f80ad8b4SAndroid Build Coastguard Worker #define STP_MASTER_MAX 0xffff 17*f80ad8b4SAndroid Build Coastguard Worker #define STP_CHANNEL_MAX 0xffff 18*f80ad8b4SAndroid Build Coastguard Worker 19*f80ad8b4SAndroid Build Coastguard Worker /** 20*f80ad8b4SAndroid Build Coastguard Worker * struct stp_policy_id - identification for the STP policy 21*f80ad8b4SAndroid Build Coastguard Worker * @size: size of the structure including real id[] length 22*f80ad8b4SAndroid Build Coastguard Worker * @master: assigned master 23*f80ad8b4SAndroid Build Coastguard Worker * @channel: first assigned channel 24*f80ad8b4SAndroid Build Coastguard Worker * @width: number of requested channels 25*f80ad8b4SAndroid Build Coastguard Worker * @id: identification string 26*f80ad8b4SAndroid Build Coastguard Worker * 27*f80ad8b4SAndroid Build Coastguard Worker * User must calculate the total size of the structure and put it into 28*f80ad8b4SAndroid Build Coastguard Worker * @size field, fill out the @id and desired @width. In return, kernel 29*f80ad8b4SAndroid Build Coastguard Worker * fills out @master, @channel and @width. 30*f80ad8b4SAndroid Build Coastguard Worker */ 31*f80ad8b4SAndroid Build Coastguard Worker struct stp_policy_id { 32*f80ad8b4SAndroid Build Coastguard Worker __u32 size; 33*f80ad8b4SAndroid Build Coastguard Worker __u16 master; 34*f80ad8b4SAndroid Build Coastguard Worker __u16 channel; 35*f80ad8b4SAndroid Build Coastguard Worker __u16 width; 36*f80ad8b4SAndroid Build Coastguard Worker /* padding */ 37*f80ad8b4SAndroid Build Coastguard Worker __u16 __reserved_0; 38*f80ad8b4SAndroid Build Coastguard Worker __u32 __reserved_1; 39*f80ad8b4SAndroid Build Coastguard Worker char id[]; 40*f80ad8b4SAndroid Build Coastguard Worker }; 41*f80ad8b4SAndroid Build Coastguard Worker 42*f80ad8b4SAndroid Build Coastguard Worker #define STP_POLICY_ID_SET _IOWR('%', 0, struct stp_policy_id) 43*f80ad8b4SAndroid Build Coastguard Worker #define STP_POLICY_ID_GET _IOR('%', 1, struct stp_policy_id) 44*f80ad8b4SAndroid Build Coastguard Worker #define STP_SET_OPTIONS _IOW('%', 2, __u64) 45*f80ad8b4SAndroid Build Coastguard Worker 46*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_STM_H */ 47