hbm.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. #ifndef _MEI_HBM_H_
  17. #define _MEI_HBM_H_
  18. struct mei_device;
  19. struct mei_msg_hdr;
  20. struct mei_cl;
  21. /**
  22. * enum mei_hbm_state - host bus message protocol state
  23. *
  24. * @MEI_HBM_IDLE : protocol not started
  25. * @MEI_HBM_START : start request message was sent
  26. * @MEI_HBM_ENUM_CLIENTS : enumeration request was sent
  27. * @MEI_HBM_CLIENT_PROPERTIES : acquiring clients properties
  28. */
  29. enum mei_hbm_state {
  30. MEI_HBM_IDLE = 0,
  31. MEI_HBM_START,
  32. MEI_HBM_ENUM_CLIENTS,
  33. MEI_HBM_CLIENT_PROPERTIES,
  34. MEI_HBM_STARTED,
  35. MEI_HBM_STOP,
  36. };
  37. void mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr);
  38. static inline void mei_hbm_hdr(struct mei_msg_hdr *hdr, size_t length)
  39. {
  40. hdr->host_addr = 0;
  41. hdr->me_addr = 0;
  42. hdr->length = length;
  43. hdr->msg_complete = 1;
  44. hdr->reserved = 0;
  45. }
  46. int mei_hbm_start_req(struct mei_device *dev);
  47. int mei_hbm_start_wait(struct mei_device *dev);
  48. int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl);
  49. int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl);
  50. int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl);
  51. bool mei_hbm_version_is_supported(struct mei_device *dev);
  52. #endif /* _MEI_HBM_H_ */