2013-01-09 01:07:12 +04:00
/*
*
* Intel Management Engine Interface ( Intel MEI ) Linux driver
* Copyright ( c ) 2003 - 2012 , Intel Corporation .
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms and conditions of the GNU General Public License ,
* version 2 , as published by the Free Software Foundation .
*
* This program is distributed in the hope it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for
* more details .
*
*/
# ifndef _MEI_HBM_H_
# define _MEI_HBM_H_
2013-04-19 00:03:48 +04:00
struct mei_device ;
struct mei_msg_hdr ;
struct mei_cl ;
/**
* enum mei_hbm_state - host bus message protocol state
*
* @ MEI_HBM_IDLE : protocol not started
2014-08-21 15:29:19 +04:00
* @ MEI_HBM_STARTING : start request message was sent
2013-04-19 00:03:48 +04:00
* @ MEI_HBM_ENUM_CLIENTS : enumeration request was sent
* @ MEI_HBM_CLIENT_PROPERTIES : acquiring clients properties
2014-11-05 12:44:48 +03:00
* @ MEI_HBM_STARTED : enumeration was completed
2014-08-21 15:29:19 +04:00
* @ MEI_HBM_STOPPED : stopping exchange
2013-04-19 00:03:48 +04:00
*/
enum mei_hbm_state {
MEI_HBM_IDLE = 0 ,
2014-08-21 15:29:19 +04:00
MEI_HBM_STARTING ,
2013-04-19 00:03:48 +04:00
MEI_HBM_ENUM_CLIENTS ,
MEI_HBM_CLIENT_PROPERTIES ,
2014-11-05 12:44:48 +03:00
MEI_HBM_STARTED ,
2014-01-08 22:19:21 +04:00
MEI_HBM_STOPPED ,
2013-04-19 00:03:48 +04:00
} ;
2014-09-29 17:31:33 +04:00
const char * mei_hbm_state_str ( enum mei_hbm_state state ) ;
2014-01-08 22:19:21 +04:00
int mei_hbm_dispatch ( struct mei_device * dev , struct mei_msg_hdr * hdr ) ;
2013-01-09 01:07:12 +04:00
2014-01-08 22:19:22 +04:00
void mei_hbm_idle ( struct mei_device * dev ) ;
2014-05-07 17:51:28 +04:00
void mei_hbm_reset ( struct mei_device * dev ) ;
2013-04-19 00:03:48 +04:00
int mei_hbm_start_req ( struct mei_device * dev ) ;
int mei_hbm_start_wait ( struct mei_device * dev ) ;
2013-01-09 01:07:12 +04:00
int mei_hbm_cl_flow_control_req ( struct mei_device * dev , struct mei_cl * cl ) ;
int mei_hbm_cl_disconnect_req ( struct mei_device * dev , struct mei_cl * cl ) ;
2014-02-12 23:41:52 +04:00
int mei_hbm_cl_disconnect_rsp ( struct mei_device * dev , struct mei_cl * cl ) ;
2013-01-09 01:07:12 +04:00
int mei_hbm_cl_connect_req ( struct mei_device * dev , struct mei_cl * cl ) ;
2013-06-16 10:16:31 +04:00
bool mei_hbm_version_is_supported ( struct mei_device * dev ) ;
2014-03-19 00:51:55 +04:00
int mei_hbm_pg ( struct mei_device * dev , u8 pg_cmd ) ;
2015-08-02 22:20:54 +03:00
void mei_hbm_pg_resume ( struct mei_device * dev ) ;
2015-07-26 09:54:16 +03:00
int mei_hbm_cl_notify_req ( struct mei_device * dev ,
struct mei_cl * cl , u8 request ) ;
2013-01-09 01:07:12 +04:00
# endif /* _MEI_HBM_H_ */