linux/drivers/misc/mei/hbm.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Copyright (c) 2003-2018, Intel Corporation. All rights reserved.
   4 * Intel Management Engine Interface (Intel MEI) Linux driver
   5 */
   6
   7#ifndef _MEI_HBM_H_
   8#define _MEI_HBM_H_
   9
  10struct mei_device;
  11struct mei_msg_hdr;
  12struct mei_cl;
  13struct mei_dma_data;
  14
  15/**
  16 * enum mei_hbm_state - host bus message protocol state
  17 *
  18 * @MEI_HBM_IDLE : protocol not started
  19 * @MEI_HBM_STARTING : start request message was sent
  20 * @MEI_HBM_CAP_SETUP : capabilities request message was sent
  21 * @MEI_HBM_DR_SETUP : dma ring setup request message was sent
  22 * @MEI_HBM_ENUM_CLIENTS : enumeration request was sent
  23 * @MEI_HBM_CLIENT_PROPERTIES : acquiring clients properties
  24 * @MEI_HBM_STARTED : enumeration was completed
  25 * @MEI_HBM_STOPPED : stopping exchange
  26 */
  27enum mei_hbm_state {
  28        MEI_HBM_IDLE = 0,
  29        MEI_HBM_STARTING,
  30        MEI_HBM_CAP_SETUP,
  31        MEI_HBM_DR_SETUP,
  32        MEI_HBM_ENUM_CLIENTS,
  33        MEI_HBM_CLIENT_PROPERTIES,
  34        MEI_HBM_STARTED,
  35        MEI_HBM_STOPPED,
  36};
  37
  38const char *mei_hbm_state_str(enum mei_hbm_state state);
  39
  40int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr);
  41
  42void mei_hbm_idle(struct mei_device *dev);
  43void mei_hbm_reset(struct mei_device *dev);
  44int mei_hbm_start_req(struct mei_device *dev);
  45int mei_hbm_start_wait(struct mei_device *dev);
  46int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl);
  47int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl);
  48int mei_hbm_cl_disconnect_rsp(struct mei_device *dev, struct mei_cl *cl);
  49int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl);
  50bool mei_hbm_version_is_supported(struct mei_device *dev);
  51int mei_hbm_pg(struct mei_device *dev, u8 pg_cmd);
  52void mei_hbm_pg_resume(struct mei_device *dev);
  53int mei_hbm_cl_notify_req(struct mei_device *dev,
  54                          struct mei_cl *cl, u8 request);
  55int mei_hbm_cl_dma_map_req(struct mei_device *dev, struct mei_cl *cl);
  56int mei_hbm_cl_dma_unmap_req(struct mei_device *dev, struct mei_cl *cl);
  57#endif /* _MEI_HBM_H_ */
  58
  59