linux/drivers/misc/mei/hbm.h
<<
>>
Prefs
   1/*
   2 *
   3 * Intel Management Engine Interface (Intel MEI) Linux driver
   4 * Copyright (c) 2003-2012, Intel Corporation.
   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#ifndef _MEI_HBM_H_
  18#define _MEI_HBM_H_
  19
  20struct mei_device;
  21struct mei_msg_hdr;
  22struct mei_cl;
  23
  24/**
  25 * enum mei_hbm_state - host bus message protocol state
  26 *
  27 * @MEI_HBM_IDLE : protocol not started
  28 * @MEI_HBM_STARTING : start request message was sent
  29 * @MEI_HBM_ENUM_CLIENTS : enumeration request was sent
  30 * @MEI_HBM_CLIENT_PROPERTIES : acquiring clients properties
  31 * @MEI_HBM_STARTED : enumeration was completed
  32 * @MEI_HBM_STOPPED : stopping exchange
  33 */
  34enum mei_hbm_state {
  35        MEI_HBM_IDLE = 0,
  36        MEI_HBM_STARTING,
  37        MEI_HBM_ENUM_CLIENTS,
  38        MEI_HBM_CLIENT_PROPERTIES,
  39        MEI_HBM_STARTED,
  40        MEI_HBM_STOPPED,
  41};
  42
  43const char *mei_hbm_state_str(enum mei_hbm_state state);
  44
  45int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr);
  46
  47void mei_hbm_idle(struct mei_device *dev);
  48void mei_hbm_reset(struct mei_device *dev);
  49int mei_hbm_start_req(struct mei_device *dev);
  50int mei_hbm_start_wait(struct mei_device *dev);
  51int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl);
  52int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl);
  53int mei_hbm_cl_disconnect_rsp(struct mei_device *dev, struct mei_cl *cl);
  54int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl);
  55bool mei_hbm_version_is_supported(struct mei_device *dev);
  56int mei_hbm_pg(struct mei_device *dev, u8 pg_cmd);
  57void mei_hbm_pg_resume(struct mei_device *dev);
  58int mei_hbm_cl_notify_req(struct mei_device *dev,
  59                          struct mei_cl *cl, u8 request);
  60
  61#endif /* _MEI_HBM_H_ */
  62
  63