Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
8be21a64
Commit
8be21a64
authored
Jul 18, 2012
by
Ben Skeggs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drm/nouveau: pull nouveau_bo definitions into their own header
Signed-off-by:
Ben Skeggs
<
bskeggs@redhat.com
>
parent
017e6e29
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
97 additions
and
90 deletions
+97
-90
drivers/gpu/drm/nouveau/nouveau_bo.h
drivers/gpu/drm/nouveau/nouveau_bo.h
+92
-0
drivers/gpu/drm/nouveau/nouveau_channel.c
drivers/gpu/drm/nouveau/nouveau_channel.c
+4
-0
drivers/gpu/drm/nouveau/nouveau_drv.c
drivers/gpu/drm/nouveau/nouveau_drv.c
+0
-4
drivers/gpu/drm/nouveau/nouveau_drv.h
drivers/gpu/drm/nouveau/nouveau_drv.h
+1
-86
No files found.
drivers/gpu/drm/nouveau/nouveau_bo.h
0 → 100644
View file @
8be21a64
#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
drivers/gpu/drm/nouveau/nouveau_channel.c
View file @
8be21a64
...
...
@@ -32,6 +32,10 @@
#include "nouveau_fence.h"
#include "nouveau_software.h"
MODULE_PARM_DESC
(
vram_pushbuf
,
"Force DMA push buffers to be in VRAM"
);
int
nouveau_vram_pushbuf
;
module_param_named
(
vram_pushbuf
,
nouveau_vram_pushbuf
,
int
,
0400
);
static
int
nouveau_channel_pushbuf_init
(
struct
nouveau_channel
*
chan
)
{
...
...
drivers/gpu/drm/nouveau/nouveau_drv.c
View file @
8be21a64
...
...
@@ -43,10 +43,6 @@ MODULE_PARM_DESC(modeset, "Enable kernel modesetting");
int
nouveau_modeset
=
-
1
;
module_param_named
(
modeset
,
nouveau_modeset
,
int
,
0400
);
MODULE_PARM_DESC
(
vram_pushbuf
,
"Force DMA push buffers to be in VRAM"
);
int
nouveau_vram_pushbuf
;
module_param_named
(
vram_pushbuf
,
nouveau_vram_pushbuf
,
int
,
0400
);
MODULE_PARM_DESC
(
vram_notify
,
"Force DMA notifiers to be in VRAM"
);
int
nouveau_vram_notify
=
0
;
module_param_named
(
vram_notify
,
nouveau_vram_notify
,
int
,
0400
);
...
...
drivers/gpu/drm/nouveau/nouveau_drv.h
View file @
8be21a64
...
...
@@ -104,49 +104,11 @@ struct nouveau_mem;
#define NOUVEAU_MAX_CHANNEL_NR 4096
#define NOUVEAU_MAX_TILE_NR 15
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
;
uint32_t
tile_mode
;
uint32_t
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
;
};
#include "nouveau_bo.h"
#define nouveau_bo_tile_layout(nvbo) \
((nvbo)->tile_flags & NOUVEAU_GEM_TILE_LAYOUT_MASK)
static
inline
struct
nouveau_bo
*
nouveau_bo
(
struct
ttm_buffer_object
*
bo
)
{
return
container_of
(
bo
,
struct
nouveau_bo
,
bo
);
}
static
inline
struct
nouveau_bo
*
nouveau_gem_object
(
struct
drm_gem_object
*
gem
)
{
...
...
@@ -591,25 +553,6 @@ nouveau_bdev(struct ttm_bo_device *bd)
return
container_of
(
bd
,
struct
drm_nouveau_private
,
ttm
.
bdev
);
}
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
;
}
/* nouveau_drv.c */
extern
int
nouveau_modeset
;
extern
int
nouveau_duallink
;
...
...
@@ -931,34 +874,6 @@ void nvd0_display_flip_stop(struct drm_crtc *);
int
nvd0_display_flip_next
(
struct
drm_crtc
*
,
struct
drm_framebuffer
*
,
struct
nouveau_channel
*
,
u32
swap_interval
);
/* nouveau_bo.c */
extern
struct
ttm_bo_driver
nouveau_bo_driver
;
extern
void
nouveau_bo_move_init
(
struct
nouveau_channel
*
);
extern
int
nouveau_bo_new
(
struct
drm_device
*
,
int
size
,
int
align
,
uint32_t
flags
,
uint32_t
tile_mode
,
uint32_t
tile_flags
,
struct
sg_table
*
sg
,
struct
nouveau_bo
**
);
extern
int
nouveau_bo_pin
(
struct
nouveau_bo
*
,
uint32_t
flags
);
extern
int
nouveau_bo_unpin
(
struct
nouveau_bo
*
);
extern
int
nouveau_bo_map
(
struct
nouveau_bo
*
);
extern
void
nouveau_bo_unmap
(
struct
nouveau_bo
*
);
extern
void
nouveau_bo_placement_set
(
struct
nouveau_bo
*
,
uint32_t
type
,
uint32_t
busy
);
extern
u16
nouveau_bo_rd16
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
);
extern
void
nouveau_bo_wr16
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
,
u16
val
);
extern
u32
nouveau_bo_rd32
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
);
extern
void
nouveau_bo_wr32
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
,
u32
val
);
extern
void
nouveau_bo_fence
(
struct
nouveau_bo
*
,
struct
nouveau_fence
*
);
extern
int
nouveau_bo_validate
(
struct
nouveau_bo
*
,
bool
interruptible
,
bool
no_wait_reserve
,
bool
no_wait_gpu
);
extern
struct
nouveau_vma
*
nouveau_bo_vma_find
(
struct
nouveau_bo
*
,
struct
nouveau_vm
*
);
extern
int
nouveau_bo_vma_add
(
struct
nouveau_bo
*
,
struct
nouveau_vm
*
,
struct
nouveau_vma
*
);
extern
void
nouveau_bo_vma_del
(
struct
nouveau_bo
*
,
struct
nouveau_vma
*
);
/* nouveau_gem.c */
extern
int
nouveau_gem_new
(
struct
drm_device
*
,
int
size
,
int
align
,
uint32_t
domain
,
uint32_t
tile_mode
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment