drm/nouveau/bios: allow loading alternate vbios image as firmware
[GitHub/LineageOS/android_kernel_samsung_universal7580.git] / drivers / staging / mei / interface.h
CommitLineData
3ce72726
OW
1/*
2 *
3 * Intel Management Engine Interface (Intel MEI) Linux driver
733ba91c 4 * Copyright (c) 2003-2012, Intel Corporation.
3ce72726
OW
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 */
16
17
18
19#ifndef _MEI_INTERFACE_H_
20#define _MEI_INTERFACE_H_
21
22#include "mei.h"
23#include "mei_dev.h"
24
25
9ce178e5
OW
26#define AMT_WD_DEFAULT_TIMEOUT 120 /* seconds */
27#define AMT_WD_MIN_TIMEOUT 120 /* seconds */
28#define AMT_WD_MAX_TIMEOUT 65535 /* seconds */
3ce72726
OW
29
30#define MEI_WATCHDOG_DATA_SIZE 16
31#define MEI_START_WD_DATA_SIZE 20
32#define MEI_WD_PARAMS_SIZE 4
33
34
35void mei_read_slots(struct mei_device *dev,
edf1eed4
TW
36 unsigned char *buffer,
37 unsigned long buffer_length);
3ce72726
OW
38
39int mei_write_message(struct mei_device *dev,
40 struct mei_msg_hdr *header,
41 unsigned char *write_buffer,
42 unsigned long write_length);
43
44int mei_host_buffer_is_empty(struct mei_device *dev);
45
46int mei_count_full_read_slots(struct mei_device *dev);
47
48int mei_count_empty_write_slots(struct mei_device *dev);
49
50int mei_flow_ctrl_creds(struct mei_device *dev, struct mei_cl *cl);
51
52int mei_wd_send(struct mei_device *dev);
53int mei_wd_stop(struct mei_device *dev, bool preserve);
617aa396 54bool mei_wd_host_init(struct mei_device *dev);
55d33856 55void mei_wd_set_start_timeout(struct mei_device *dev, u16 timeout);
70cd5337
TW
56/*
57 * mei_watchdog_register - Registering watchdog interface
58 * once we got connection to the WD Client
59 * @dev - mei device
60 */
61void mei_watchdog_register(struct mei_device *dev);
62/*
5f9092f3 63 * mei_watchdog_unregister - Unregistering watchdog interface
70cd5337
TW
64 * @dev - mei device
65 */
66void mei_watchdog_unregister(struct mei_device *dev);
3ce72726
OW
67
68int mei_flow_ctrl_reduce(struct mei_device *dev, struct mei_cl *cl);
69
70int mei_send_flow_control(struct mei_device *dev, struct mei_cl *cl);
71
72int mei_disconnect(struct mei_device *dev, struct mei_cl *cl);
73int mei_other_client_is_connecting(struct mei_device *dev, struct mei_cl *cl);
74int mei_connect(struct mei_device *dev, struct mei_cl *cl);
75
76#endif /* _MEI_INTERFACE_H_ */