dbc.h 906 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * AMD Platform Security Processor (PSP) Dynamic Boost Control support
  4. *
  5. * Copyright (C) 2023 Advanced Micro Devices, Inc.
  6. *
  7. * Author: Mario Limonciello <mario.limonciello@amd.com>
  8. */
  9. #ifndef __DBC_H__
  10. #define __DBC_H__
  11. #include <uapi/linux/psp-dbc.h>
  12. #include <linux/device.h>
  13. #include <linux/miscdevice.h>
  14. #include <linux/psp-platform-access.h>
  15. #include "psp-dev.h"
  16. struct psp_dbc_device {
  17. struct device *dev;
  18. struct psp_device *psp;
  19. union dbc_buffer *mbox;
  20. struct mutex ioctl_mutex;
  21. struct miscdevice char_dev;
  22. /* used to abstract communication path */
  23. bool use_ext;
  24. u32 header_size;
  25. u32 *payload_size;
  26. u32 *result;
  27. void *payload;
  28. };
  29. union dbc_buffer {
  30. struct psp_request pa_req;
  31. struct psp_ext_request ext_req;
  32. };
  33. void dbc_dev_destroy(struct psp_device *psp);
  34. int dbc_dev_init(struct psp_device *psp);
  35. #endif /* __DBC_H */