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
* @ MEI_HBM_STARTED : start reply message was received
2013-04-19 00:03:48 +04:00
* @ MEI_HBM_ENUM_CLIENTS : enumeration request was sent
* @ MEI_HBM_CLIENT_PROPERTIES : acquiring clients properties
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 ,
2014-01-08 22:19:21 +04:00
MEI_HBM_STARTED ,
2013-04-19 00:03:48 +04:00
MEI_HBM_ENUM_CLIENTS ,
MEI_HBM_CLIENT_PROPERTIES ,
2014-01-08 22:19:21 +04:00
MEI_HBM_STOPPED ,
2013-04-19 00:03:48 +04:00
} ;
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
static inline void mei_hbm_hdr ( struct mei_msg_hdr * hdr , size_t length )
{
hdr - > host_addr = 0 ;
hdr - > me_addr = 0 ;
hdr - > length = length ;
hdr - > msg_complete = 1 ;
hdr - > reserved = 0 ;
}
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 ) ;
2013-01-09 01:07:12 +04:00
# endif /* _MEI_HBM_H_ */