ivpu_ms.h 1009 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
  2. /*
  3. * Copyright (C) 2020-2024 Intel Corporation
  4. */
  5. #ifndef __IVPU_MS_H__
  6. #define __IVPU_MS_H__
  7. #include <linux/list.h>
  8. struct drm_device;
  9. struct drm_file;
  10. struct ivpu_bo;
  11. struct ivpu_device;
  12. struct ivpu_file_priv;
  13. struct ivpu_ms_instance {
  14. struct ivpu_bo *bo;
  15. struct list_head ms_instance_node;
  16. u64 mask;
  17. u64 buff_size;
  18. u64 active_buff_vpu_addr;
  19. u64 inactive_buff_vpu_addr;
  20. void *active_buff_ptr;
  21. void *inactive_buff_ptr;
  22. u64 leftover_bytes;
  23. void *leftover_addr;
  24. };
  25. int ivpu_ms_start_ioctl(struct drm_device *dev, void *data, struct drm_file *file);
  26. int ivpu_ms_stop_ioctl(struct drm_device *dev, void *data, struct drm_file *file);
  27. int ivpu_ms_get_data_ioctl(struct drm_device *dev, void *data, struct drm_file *file);
  28. int ivpu_ms_get_info_ioctl(struct drm_device *dev, void *data, struct drm_file *file);
  29. void ivpu_ms_cleanup(struct ivpu_file_priv *file_priv);
  30. void ivpu_ms_cleanup_all(struct ivpu_device *vdev);
  31. #endif /* __IVPU_MS_H__ */