History

mfd: cros_ec: Complete MEMS sensor API

Add new command for batched mode, add support for more sensors.

Gwendal Grignou committed 7 years ago

Commit a517bb41 parent 2908c4e1 file · +406 −58Browse files

Showing the changes to include/linux (1 of 1 file). Show all

Unified · Split

include/linux/mfd/cros_ec_commands.h+406−58
@@ -2191,7 +2191,13 @@ enum motionsense_command { · 2190 unmodified lines
21912191
21922192 /*
21932193 * EC Rate command is a setter/getter command for the EC sampling rate
2194− * of all motion sensors in milliseconds.
2194+ * in milliseconds.
2195+ * It is per sensor, the EC run sample task at the minimum of all
2196+ * sensors EC_RATE.
2197+ * For sensors without hardware FIFO, EC_RATE should be equals to 1/ODR
2198+ * to collect all the sensor samples.
2199+ * For sensor with hardware FIFO, EC_RATE is used as the maximal delay
2200+ * to process of all motion sensors in milliseconds.
21952201 */
21962202 MOTIONSENSE_CMD_EC_RATE = 2,
21972203
@@ -2222,32 +2228,76 @@ enum motionsense_command { · 24 unmodified lines
22222228 MOTIONSENSE_CMD_DATA = 6,
22232229
22242230 /*
2225− * Perform low level calibration.. On sensors that support it, ask to
2226− * do offset calibration.
2231+ * Return sensor fifo info.
2232+ */
2233+ MOTIONSENSE_CMD_FIFO_INFO = 7,
2234+
2235+ /*
2236+ * Insert a flush element in the fifo and return sensor fifo info.
2237+ * The host can use that element to synchronize its operation.
2238+ */
2239+ MOTIONSENSE_CMD_FIFO_FLUSH = 8,
2240+
2241+ /*
2242+ * Return a portion of the fifo.
2243+ */
2244+ MOTIONSENSE_CMD_FIFO_READ = 9,
2245+
2246+ /*
2247+ * Perform low level calibration.
2248+ * On sensors that support it, ask to do offset calibration.
22272249 */
22282250 MOTIONSENSE_CMD_PERFORM_CALIB = 10,
22292251
22302252 /*
2231− * Sensor Offset command is a setter/getter command for the offset used
2232− * for calibration. The offsets can be calculated by the host, or via
2253+ * Sensor Offset command is a setter/getter command for the offset
2254+ * used for calibration.
2255+ * The offsets can be calculated by the host, or via
22332256 * PERFORM_CALIB command.
22342257 */
22352258 MOTIONSENSE_CMD_SENSOR_OFFSET = 11,
22362259
2237− /* Number of motionsense sub-commands. */
2238− MOTIONSENSE_NUM_CMDS
2239−};
2260+ /*
2261+ * List available activities for a MOTION sensor.
2262+ * Indicates if they are enabled or disabled.
2263+ */
2264+ MOTIONSENSE_CMD_LIST_ACTIVITIES = 12,
2265+
2266+ /*
2267+ * Activity management
2268+ * Enable/Disable activity recognition.
2269+ */
2270+ MOTIONSENSE_CMD_SET_ACTIVITY = 13,
2271+
2272+ /*
2273+ * Lid Angle
2274+ */
2275+ MOTIONSENSE_CMD_LID_ANGLE = 14,
2276+
2277+ /*
2278+ * Allow the FIFO to trigger interrupt via MKBP events.
2279+ * By default the FIFO does not send interrupt to process the FIFO
2280+ * until the AP is ready or it is coming from a wakeup sensor.
2281+ */
2282+ MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15,
2283+
2284+ /*
2285+ * Spoof the readings of the sensors. The spoofed readings can be set
2286+ * to arbitrary values, or will lock to the last read actual values.
2287+ */
2288+ MOTIONSENSE_CMD_SPOOF = 16,
22402289
2241−enum motionsensor_id {
2242− EC_MOTION_SENSOR_ACCEL_BASE = 0,
2243− EC_MOTION_SENSOR_ACCEL_LID = 1,
2244− EC_MOTION_SENSOR_GYRO = 2,
2290+ /* Set lid angle for tablet mode detection. */
2291+ MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17,
22452292
22462293 /*
2247− * Note, if more sensors are added and this count changes, the padding
2248− * in ec_response_motion_sense dump command must be modified.
2294+ * Sensor Scale command is a setter/getter command for the calibration
2295+ * scale.
22492296 */
2250− EC_MOTION_SENSOR_COUNT = 3
2297+ MOTIONSENSE_CMD_SENSOR_SCALE = 18,
2298+
2299+ /* Number of motionsense sub-commands. */
2300+ MOTIONSENSE_NUM_CMDS
22512301 };
22522302
22532303 /* List of motion sensor types. */
@@ -2259,6 +2309,7 @@ enum motionsensor_type { · 5 unmodified lines
22592309 MOTIONSENSE_TYPE_LIGHT = 4,
22602310 MOTIONSENSE_TYPE_ACTIVITY = 5,
22612311 MOTIONSENSE_TYPE_BARO = 6,
2312+ MOTIONSENSE_TYPE_SYNC = 7,
22622313 MOTIONSENSE_TYPE_MAX,
22632314 };
22642315
@@ -2266,36 +2317,48 @@ enum motionsensor_type { · 1 unmodified line
22662317 enum motionsensor_location {
22672318 MOTIONSENSE_LOC_BASE = 0,
22682319 MOTIONSENSE_LOC_LID = 1,
2320+ MOTIONSENSE_LOC_CAMERA = 2,
22692321 MOTIONSENSE_LOC_MAX,
22702322 };
22712323
22722324 /* List of motion sensor chips. */
22732325 enum motionsensor_chip {
22742326 MOTIONSENSE_CHIP_KXCJ9 = 0,
2327+ MOTIONSENSE_CHIP_LSM6DS0 = 1,
2328+ MOTIONSENSE_CHIP_BMI160 = 2,
2329+ MOTIONSENSE_CHIP_SI1141 = 3,
2330+ MOTIONSENSE_CHIP_SI1142 = 4,
2331+ MOTIONSENSE_CHIP_SI1143 = 5,
2332+ MOTIONSENSE_CHIP_KX022 = 6,
2333+ MOTIONSENSE_CHIP_L3GD20H = 7,
2334+ MOTIONSENSE_CHIP_BMA255 = 8,
2335+ MOTIONSENSE_CHIP_BMP280 = 9,
2336+ MOTIONSENSE_CHIP_OPT3001 = 10,
2337+ MOTIONSENSE_CHIP_BH1730 = 11,
2338+ MOTIONSENSE_CHIP_GPIO = 12,
2339+ MOTIONSENSE_CHIP_LIS2DH = 13,
2340+ MOTIONSENSE_CHIP_LSM6DSM = 14,
2341+ MOTIONSENSE_CHIP_LIS2DE = 15,
2342+ MOTIONSENSE_CHIP_LIS2MDL = 16,
2343+ MOTIONSENSE_CHIP_LSM6DS3 = 17,
2344+ MOTIONSENSE_CHIP_LSM6DSO = 18,
2345+ MOTIONSENSE_CHIP_LNG2DM = 19,
2346+ MOTIONSENSE_CHIP_MAX,
22752347 };
22762348
2277−/* Module flag masks used for the dump sub-command. */
2278−#define MOTIONSENSE_MODULE_FLAG_ACTIVE (1<<0)
2279−
2280−/* Sensor flag masks used for the dump sub-command. */
2281−#define MOTIONSENSE_SENSOR_FLAG_PRESENT (1<<0)
2282−
2283−/*
2284− * Send this value for the data element to only perform a read. If you
2285− * send any other value, the EC will interpret it as data to set and will
2286− * return the actual value set.
2287− */
2288−#define EC_MOTION_SENSE_NO_VALUE -1
2289−
2290−#define EC_MOTION_SENSE_INVALID_CALIB_TEMP 0x8000
2291−
2292−/* Set Calibration information */
2293−#define MOTION_SENSE_SET_OFFSET 1
2349+/* List of orientation positions */
2350+enum motionsensor_orientation {
2351+ MOTIONSENSE_ORIENTATION_LANDSCAPE = 0,
2352+ MOTIONSENSE_ORIENTATION_PORTRAIT = 1,
2353+ MOTIONSENSE_ORIENTATION_UPSIDE_DOWN_PORTRAIT = 2,
2354+ MOTIONSENSE_ORIENTATION_UPSIDE_DOWN_LANDSCAPE = 3,
2355+ MOTIONSENSE_ORIENTATION_UNKNOWN = 4,
2356+};
22942357
22952358 struct ec_response_motion_sensor_data {
22962359 /* Flags for each sensor. */
22972360 uint8_t flags;
2298− /* Sensor number the data comes from */
2361+ /* Sensor number the data comes from. */
22992362 uint8_t sensor_num;
23002363 /* Each sensor is up to 3-axis. */
23012364 union {
@@ -2312,22 +2375,138 @@ struct ec_response_motion_sensor_data { · 10 unmodified lines
23122375 };
23132376 } __ec_todo_packed;
23142377
2378+/* Note: used in ec_response_get_next_data */
2379+struct ec_response_motion_sense_fifo_info {
2380+ /* Size of the fifo */
2381+ uint16_t size;
2382+ /* Amount of space used in the fifo */
2383+ uint16_t count;
2384+ /* Timestamp recorded in us.
2385+ * aka accurate timestamp when host event was triggered.
2386+ */
2387+ uint32_t timestamp;
2388+ /* Total amount of vector lost */
2389+ uint16_t total_lost;
2390+ /* Lost events since the last fifo_info, per sensors */
2391+ uint16_t lost[0];
2392+} __ec_todo_packed;
2393+
2394+struct ec_response_motion_sense_fifo_data {
2395+ uint32_t number_data;
2396+ struct ec_response_motion_sensor_data data[0];
2397+} __ec_todo_packed;
2398+
2399+/* List supported activity recognition */
2400+enum motionsensor_activity {
2401+ MOTIONSENSE_ACTIVITY_RESERVED = 0,
2402+ MOTIONSENSE_ACTIVITY_SIG_MOTION = 1,
2403+ MOTIONSENSE_ACTIVITY_DOUBLE_TAP = 2,
2404+ MOTIONSENSE_ACTIVITY_ORIENTATION = 3,
2405+};
2406+
2407+struct ec_motion_sense_activity {
2408+ uint8_t sensor_num;
2409+ uint8_t activity; /* one of enum motionsensor_activity */
2410+ uint8_t enable; /* 1: enable, 0: disable */
2411+ uint8_t reserved;
2412+ uint16_t parameters[3]; /* activity dependent parameters */
2413+} __ec_todo_unpacked;
2414+
2415+/* Module flag masks used for the dump sub-command. */
2416+#define MOTIONSENSE_MODULE_FLAG_ACTIVE BIT(0)
2417+
2418+/* Sensor flag masks used for the dump sub-command. */
2419+#define MOTIONSENSE_SENSOR_FLAG_PRESENT BIT(0)
2420+
2421+/*
2422+ * Flush entry for synchronization.
2423+ * data contains time stamp
2424+ */
2425+#define MOTIONSENSE_SENSOR_FLAG_FLUSH BIT(0)
2426+#define MOTIONSENSE_SENSOR_FLAG_TIMESTAMP BIT(1)
2427+#define MOTIONSENSE_SENSOR_FLAG_WAKEUP BIT(2)
2428+#define MOTIONSENSE_SENSOR_FLAG_TABLET_MODE BIT(3)
2429+#define MOTIONSENSE_SENSOR_FLAG_ODR BIT(4)
2430+
2431+/*
2432+ * Send this value for the data element to only perform a read. If you
2433+ * send any other value, the EC will interpret it as data to set and will
2434+ * return the actual value set.
2435+ */
2436+#define EC_MOTION_SENSE_NO_VALUE -1
2437+
2438+#define EC_MOTION_SENSE_INVALID_CALIB_TEMP 0x8000
2439+
2440+/* MOTIONSENSE_CMD_SENSOR_OFFSET subcommand flag */
2441+/* Set Calibration information */
2442+#define MOTION_SENSE_SET_OFFSET BIT(0)
2443+
2444+/* Default Scale value, factor 1. */
2445+#define MOTION_SENSE_DEFAULT_SCALE BIT(15)
2446+
2447+#define LID_ANGLE_UNRELIABLE 500
2448+
2449+enum motionsense_spoof_mode {
2450+ /* Disable spoof mode. */
2451+ MOTIONSENSE_SPOOF_MODE_DISABLE = 0,
2452+
2453+ /* Enable spoof mode, but use provided component values. */
2454+ MOTIONSENSE_SPOOF_MODE_CUSTOM,
2455+
2456+ /* Enable spoof mode, but use the current sensor values. */
2457+ MOTIONSENSE_SPOOF_MODE_LOCK_CURRENT,
2458+
2459+ /* Query the current spoof mode status for the sensor. */
2460+ MOTIONSENSE_SPOOF_MODE_QUERY,
2461+};
2462+
23152463 struct ec_params_motion_sense {
23162464 uint8_t cmd;
23172465 union {
23182466 /* Used for MOTIONSENSE_CMD_DUMP. */
23192467 struct __ec_todo_unpacked {
2320− /* no args */
2468+ /*
2469+ * Maximal number of sensor the host is expecting.
2470+ * 0 means the host is only interested in the number
2471+ * of sensors controlled by the EC.
2472+ */
2473+ uint8_t max_sensor_count;
23212474 } dump;
23222475
23232476 /*
2324− * Used for MOTIONSENSE_CMD_EC_RATE and
2325− * MOTIONSENSE_CMD_KB_WAKE_ANGLE.
2477+ * Used for MOTIONSENSE_CMD_KB_WAKE_ANGLE.
23262478 */
23272479 struct __ec_todo_unpacked {
2328− /* Data to set or EC_MOTION_SENSE_NO_VALUE to read. */
2480+ /* Data to set or EC_MOTION_SENSE_NO_VALUE to read.
2481+ * kb_wake_angle: angle to wakup AP.
2482+ */
23292483 int16_t data;
2330− } ec_rate, kb_wake_angle;
2484+ } kb_wake_angle;
2485+
2486+ /*
2487+ * Used for MOTIONSENSE_CMD_INFO, MOTIONSENSE_CMD_DATA
2488+ * and MOTIONSENSE_CMD_PERFORM_CALIB.
2489+ */
2490+ struct __ec_todo_unpacked {
2491+ uint8_t sensor_num;
2492+ } info, info_3, data, fifo_flush, perform_calib,
2493+ list_activities;
2494+
2495+ /*
2496+ * Used for MOTIONSENSE_CMD_EC_RATE, MOTIONSENSE_CMD_SENSOR_ODR
2497+ * and MOTIONSENSE_CMD_SENSOR_RANGE.
2498+ */
2499+ struct __ec_todo_unpacked {
2500+ uint8_t sensor_num;
2501+
2502+ /* Rounding flag, true for round-up, false for down. */
2503+ uint8_t roundup;
2504+
2505+ uint16_t reserved;
2506+
2507+ /* Data to set or EC_MOTION_SENSE_NO_VALUE to read. */
2508+ int32_t data;
2509+ } ec_rate, sensor_odr, sensor_range;
23312510
23322511 /* Used for MOTIONSENSE_CMD_SENSOR_OFFSET */
23332512 struct __ec_todo_packed {
@@ -2358,33 +2537,99 @@ struct ec_params_motion_sense { · 24 unmodified lines
23582537 int16_t offset[3];
23592538 } sensor_offset;
23602539
2361− /* Used for MOTIONSENSE_CMD_INFO. */
2540+ /* Used for MOTIONSENSE_CMD_SENSOR_SCALE */
23622541 struct __ec_todo_packed {
23632542 uint8_t sensor_num;
2364− } info;
23652543
2366− /*
2367− * Used for MOTIONSENSE_CMD_SENSOR_ODR and
2368− * MOTIONSENSE_CMD_SENSOR_RANGE.
2369− */
2370− struct {
2371− /* Should be element of enum motionsensor_id. */
2372− uint8_t sensor_num;
2544+ /*
2545+ * bit 0: If set (MOTION_SENSE_SET_OFFSET), set
2546+ * the calibration information in the EC.
2547+ * If unset, just retrieve calibration information.
2548+ */
2549+ uint16_t flags;
23732550
2374− /* Rounding flag, true for round-up, false for down. */
2375− uint8_t roundup;
2551+ /*
2552+ * Temperature at calibration, in units of 0.01 C
2553+ * 0x8000: invalid / unknown.
2554+ * 0x0: 0C
2555+ * 0x7fff: +327.67C
2556+ */
2557+ int16_t temp;
23762558
2377− uint16_t reserved;
2559+ /*
2560+ * Scale for calibration:
2561+ * By default scale is 1, it is encoded on 16bits:
2562+ * 1 = BIT(15)
2563+ * ~2 = 0xFFFF
2564+ * ~0 = 0.
2565+ */
2566+ uint16_t scale[3];
2567+ } sensor_scale;
23782568
2379− /* Data to set or EC_MOTION_SENSE_NO_VALUE to read. */
2380− int32_t data;
2381− } sensor_odr, sensor_range;
2569+
2570+ /* Used for MOTIONSENSE_CMD_FIFO_INFO */
2571+ /* (no params) */
2572+
2573+ /* Used for MOTIONSENSE_CMD_FIFO_READ */
2574+ struct __ec_todo_unpacked {
2575+ /*
2576+ * Number of expected vector to return.
2577+ * EC may return less or 0 if none available.
2578+ */
2579+ uint32_t max_data_vector;
2580+ } fifo_read;
2581+
2582+ struct ec_motion_sense_activity set_activity;
2583+
2584+ /* Used for MOTIONSENSE_CMD_LID_ANGLE */
2585+ /* (no params) */
2586+
2587+ /* Used for MOTIONSENSE_CMD_FIFO_INT_ENABLE */
2588+ struct __ec_todo_unpacked {
2589+ /*
2590+ * 1: enable, 0 disable fifo,
2591+ * EC_MOTION_SENSE_NO_VALUE return value.
2592+ */
2593+ int8_t enable;
2594+ } fifo_int_enable;
2595+
2596+ /* Used for MOTIONSENSE_CMD_SPOOF */
2597+ struct __ec_todo_packed {
2598+ uint8_t sensor_id;
2599+
2600+ /* See enum motionsense_spoof_mode. */
2601+ uint8_t spoof_enable;
2602+
2603+ /* Ignored, used for alignment. */
2604+ uint8_t reserved;
2605+
2606+ /* Individual component values to spoof. */
2607+ int16_t components[3];
2608+ } spoof;
2609+
2610+ /* Used for MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE. */
2611+ struct __ec_todo_unpacked {
2612+ /*
2613+ * Lid angle threshold for switching between tablet and
2614+ * clamshell mode.
2615+ */
2616+ int16_t lid_angle;
2617+
2618+ /*
2619+ * Hysteresis degree to prevent fluctuations between
2620+ * clamshell and tablet mode if lid angle keeps
2621+ * changing around the threshold. Lid motion driver will
2622+ * use lid_angle + hys_degree to trigger tablet mode and
2623+ * lid_angle - hys_degree to trigger clamshell mode.
2624+ */
2625+ int16_t hys_degree;
2626+ } tablet_mode_threshold;
23822627 };
23832628 } __ec_todo_packed;
23842629
23852630 struct ec_response_motion_sense {
23862631 union {
2387− /* Used for MOTIONSENSE_CMD_DUMP. */
2632+ /* Used for MOTIONSENSE_CMD_DUMP */
23882633 struct __ec_todo_unpacked {
23892634 /* Flags representing the motion sensor module. */
23902635 uint8_t module_flags;
@@ -2411,27 +2656,118 @@ struct ec_response_motion_sense { · 20 unmodified lines
24112656 uint8_t chip;
24122657 } info;
24132658
2659+ /* Used for MOTIONSENSE_CMD_INFO version 3 */
2660+ struct __ec_todo_unpacked {
2661+ /* Should be element of enum motionsensor_type. */
2662+ uint8_t type;
2663+
2664+ /* Should be element of enum motionsensor_location. */
2665+ uint8_t location;
2666+
2667+ /* Should be element of enum motionsensor_chip. */
2668+ uint8_t chip;
2669+
2670+ /* Minimum sensor sampling frequency */
2671+ uint32_t min_frequency;
2672+
2673+ /* Maximum sensor sampling frequency */
2674+ uint32_t max_frequency;
2675+
2676+ /* Max number of sensor events that could be in fifo */
2677+ uint32_t fifo_max_event_count;
2678+ } info_3;
2679+
24142680 /* Used for MOTIONSENSE_CMD_DATA */
24152681 struct ec_response_motion_sensor_data data;
24162682
24172683 /*
24182684 * Used for MOTIONSENSE_CMD_EC_RATE, MOTIONSENSE_CMD_SENSOR_ODR,
2419− * MOTIONSENSE_CMD_SENSOR_RANGE, and
2420− * MOTIONSENSE_CMD_KB_WAKE_ANGLE.
2685+ * MOTIONSENSE_CMD_SENSOR_RANGE,
2686+ * MOTIONSENSE_CMD_KB_WAKE_ANGLE,
2687+ * MOTIONSENSE_CMD_FIFO_INT_ENABLE and
2688+ * MOTIONSENSE_CMD_SPOOF.
24212689 */
24222690 struct __ec_todo_unpacked {
24232691 /* Current value of the parameter queried. */
24242692 int32_t ret;
2425− } ec_rate, sensor_odr, sensor_range, kb_wake_angle;
2693+ } ec_rate, sensor_odr, sensor_range, kb_wake_angle,
2694+ fifo_int_enable, spoof;
24262695
2427− /* Used for MOTIONSENSE_CMD_SENSOR_OFFSET */
2696+ /*
2697+ * Used for MOTIONSENSE_CMD_SENSOR_OFFSET,
2698+ * PERFORM_CALIB.
2699+ */
24282700 struct __ec_todo_unpacked {
24292701 int16_t temp;
24302702 int16_t offset[3];
24312703 } sensor_offset, perform_calib;
2704+
2705+ /* Used for MOTIONSENSE_CMD_SENSOR_SCALE */
2706+ struct __ec_todo_unpacked {
2707+ int16_t temp;
2708+ uint16_t scale[3];
2709+ } sensor_scale;
2710+
2711+ struct ec_response_motion_sense_fifo_info fifo_info, fifo_flush;
2712+
2713+ struct ec_response_motion_sense_fifo_data fifo_read;
2714+
2715+ struct __ec_todo_packed {
2716+ uint16_t reserved;
2717+ uint32_t enabled;
2718+ uint32_t disabled;
2719+ } list_activities;
2720+
2721+ /* No params for set activity */
2722+
2723+ /* Used for MOTIONSENSE_CMD_LID_ANGLE */
2724+ struct __ec_todo_unpacked {
2725+ /*
2726+ * Angle between 0 and 360 degree if available,
2727+ * LID_ANGLE_UNRELIABLE otherwise.
2728+ */
2729+ uint16_t value;
2730+ } lid_angle;
2731+
2732+ /* Used for MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE. */
2733+ struct __ec_todo_unpacked {
2734+ /*
2735+ * Lid angle threshold for switching between tablet and
2736+ * clamshell mode.
2737+ */
2738+ uint16_t lid_angle;
2739+
2740+ /* Hysteresis degree. */
2741+ uint16_t hys_degree;
2742+ } tablet_mode_threshold;
2743+
24322744 };
24332745 } __ec_todo_packed;
24342746
2747+/*****************************************************************************/
2748+/* Force lid open command */
2749+
2750+/* Make lid event always open */
2751+#define EC_CMD_FORCE_LID_OPEN 0x002C
2752+
2753+struct ec_params_force_lid_open {
2754+ uint8_t enabled;
2755+} __ec_align1;
2756+
2757+/*****************************************************************************/
2758+/* Configure the behavior of the power button */
2759+#define EC_CMD_CONFIG_POWER_BUTTON 0x002D
2760+
2761+enum ec_config_power_button_flags {
2762+ /* Enable/Disable power button pulses for x86 devices */
2763+ EC_POWER_BUTTON_ENABLE_PULSE = BIT(0),
2764+};
2765+
2766+struct ec_params_config_power_button {
2767+ /* See enum ec_config_power_button_flags */
2768+ uint8_t flags;
2769+} __ec_align1;
2770+
24352771 /*****************************************************************************/
24362772 /* USB charging control commands */
24372773
@@ -2888,6 +3224,12 @@ union __ec_align_offset1 ec_response_get_next_data { · 450 unmodified lines
28883224 /* Unaligned */
28893225 uint32_t host_event;
28903226
3227+ struct __ec_todo_unpacked {
3228+ /* For aligning the fifo_info */
3229+ uint8_t reserved[3];
3230+ struct ec_response_motion_sense_fifo_info info;
3231+ } sensor_fifo;
3232+
28913233 uint32_t buttons;
28923234 uint32_t switches;
28933235 uint32_t sysrq;
@@ -2896,6 +3238,12 @@ union __ec_align_offset1 ec_response_get_next_data { · 2 unmodified lines
28963238 union __ec_align_offset1 ec_response_get_next_data_v1 {
28973239 uint8_t key_matrix[16];
28983240 uint32_t host_event;
3241+ struct __ec_todo_unpacked {
3242+ /* For aligning the fifo_info */
3243+ uint8_t reserved[3];
3244+ struct ec_response_motion_sense_fifo_info info;
3245+ } sensor_fifo;
3246+
28993247 uint32_t buttons;
29003248 uint32_t switches;
29013249 uint32_t sysrq;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t