gtt.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /**************************************************************************
  3. * Copyright (c) 2007-2008, Intel Corporation.
  4. * All Rights Reserved.
  5. *
  6. **************************************************************************/
  7. #ifndef _PSB_GTT_H_
  8. #define _PSB_GTT_H_
  9. #include <drm/drm_gem.h>
  10. struct drm_psb_private;
  11. /* This wants cleaning up with respect to the psb_dev and un-needed stuff */
  12. struct psb_gtt {
  13. uint32_t gatt_start;
  14. uint32_t mmu_gatt_start;
  15. uint32_t gtt_start;
  16. uint32_t gtt_phys_start;
  17. unsigned gtt_pages;
  18. unsigned gatt_pages;
  19. unsigned long stolen_size;
  20. unsigned long vram_stolen_size;
  21. };
  22. /* Exported functions */
  23. int psb_gtt_init(struct drm_device *dev);
  24. void psb_gtt_fini(struct drm_device *dev);
  25. int psb_gtt_resume(struct drm_device *dev);
  26. int psb_gtt_allocate_resource(struct drm_psb_private *pdev, struct resource *res,
  27. const char *name, resource_size_t size, resource_size_t align,
  28. bool stolen, u32 *offset);
  29. uint32_t psb_gtt_mask_pte(uint32_t pfn, int type);
  30. void psb_gtt_insert_pages(struct drm_psb_private *pdev, const struct resource *res,
  31. struct page **pages);
  32. void psb_gtt_remove_pages(struct drm_psb_private *pdev, const struct resource *res);
  33. #endif