-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/nouveau: pull nouveau_bo definitions into their own header
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
- Loading branch information
Ben Skeggs
committed
Oct 3, 2012
1 parent
017e6e2
commit 8be21a6
Showing
4 changed files
with
97 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
#ifndef __NOUVEAU_BO_H__ | ||
#define __NOUVEAU_BO_H__ | ||
|
||
struct nouveau_channel; | ||
struct nouveau_vma; | ||
|
||
struct nouveau_tile_reg { | ||
bool used; | ||
struct nouveau_fence *fence; | ||
}; | ||
|
||
struct nouveau_bo { | ||
struct ttm_buffer_object bo; | ||
struct ttm_placement placement; | ||
u32 valid_domains; | ||
u32 placements[3]; | ||
u32 busy_placements[3]; | ||
struct ttm_bo_kmap_obj kmap; | ||
struct list_head head; | ||
|
||
/* protected by ttm_bo_reserve() */ | ||
struct drm_file *reserved_by; | ||
struct list_head entry; | ||
int pbbo_index; | ||
bool validate_mapped; | ||
|
||
struct list_head vma_list; | ||
unsigned page_shift; | ||
|
||
u32 tile_mode; | ||
u32 tile_flags; | ||
struct nouveau_tile_reg *tile; | ||
|
||
struct drm_gem_object *gem; | ||
int pin_refcnt; | ||
|
||
struct ttm_bo_kmap_obj dma_buf_vmap; | ||
int vmapping_count; | ||
}; | ||
|
||
static inline struct nouveau_bo * | ||
nouveau_bo(struct ttm_buffer_object *bo) | ||
{ | ||
return container_of(bo, struct nouveau_bo, bo); | ||
} | ||
|
||
static inline int | ||
nouveau_bo_ref(struct nouveau_bo *ref, struct nouveau_bo **pnvbo) | ||
{ | ||
struct nouveau_bo *prev; | ||
|
||
if (!pnvbo) | ||
return -EINVAL; | ||
prev = *pnvbo; | ||
|
||
*pnvbo = ref ? nouveau_bo(ttm_bo_reference(&ref->bo)) : NULL; | ||
if (prev) { | ||
struct ttm_buffer_object *bo = &prev->bo; | ||
|
||
ttm_bo_unref(&bo); | ||
} | ||
|
||
return 0; | ||
} | ||
|
||
extern struct ttm_bo_driver nouveau_bo_driver; | ||
|
||
void nouveau_bo_move_init(struct nouveau_channel *); | ||
int nouveau_bo_new(struct drm_device *, int size, int align, u32 flags, | ||
u32 tile_mode, u32 tile_flags, struct sg_table *sg, | ||
struct nouveau_bo **); | ||
int nouveau_bo_pin(struct nouveau_bo *, u32 flags); | ||
int nouveau_bo_unpin(struct nouveau_bo *); | ||
int nouveau_bo_map(struct nouveau_bo *); | ||
void nouveau_bo_unmap(struct nouveau_bo *); | ||
void nouveau_bo_placement_set(struct nouveau_bo *, u32 type, u32 busy); | ||
u16 nouveau_bo_rd16(struct nouveau_bo *, unsigned index); | ||
void nouveau_bo_wr16(struct nouveau_bo *, unsigned index, u16 val); | ||
u32 nouveau_bo_rd32(struct nouveau_bo *, unsigned index); | ||
void nouveau_bo_wr32(struct nouveau_bo *, unsigned index, u32 val); | ||
void nouveau_bo_fence(struct nouveau_bo *, struct nouveau_fence *); | ||
int nouveau_bo_validate(struct nouveau_bo *, bool interruptible, | ||
bool no_wait_reserve, bool no_wait_gpu); | ||
|
||
struct nouveau_vma * | ||
nouveau_bo_vma_find(struct nouveau_bo *, struct nouveau_vm *); | ||
|
||
int nouveau_bo_vma_add(struct nouveau_bo *, struct nouveau_vm *, | ||
struct nouveau_vma *); | ||
void nouveau_bo_vma_del(struct nouveau_bo *, struct nouveau_vma *); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters