Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
8d23adf7
Commit
8d23adf7
authored
Oct 02, 2009
by
Eric Anholt
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit 'ickle/for-anholt' into drm-intel-next
parents
4781f20f
9d34e5db
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
26 deletions
+46
-26
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_dma.c
+1
-0
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_drv.h
+2
-0
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem.c
+8
-2
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_irq.c
+10
-0
drivers/gpu/drm/i915/i915_trace.h
drivers/gpu/drm/i915/i915_trace.h
+25
-24
No files found.
drivers/gpu/drm/i915/i915_dma.c
View file @
8d23adf7
...
...
@@ -1468,6 +1468,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
spin_lock_init
(
&
dev_priv
->
user_irq_lock
);
spin_lock_init
(
&
dev_priv
->
error_lock
);
dev_priv
->
user_irq_refcount
=
0
;
dev_priv
->
trace_irq_seqno
=
0
;
ret
=
drm_vblank_init
(
dev
,
I915_NUM_PIPE
);
...
...
drivers/gpu/drm/i915/i915_drv.h
View file @
8d23adf7
...
...
@@ -202,6 +202,7 @@ typedef struct drm_i915_private {
spinlock_t
user_irq_lock
;
/** Refcount for i915_user_irq_get() versus i915_user_irq_put(). */
int
user_irq_refcount
;
u32
trace_irq_seqno
;
/** Cached value of IMR to avoid reads in updating the bitfield */
u32
irq_mask_reg
;
u32
pipestat
[
2
];
...
...
@@ -665,6 +666,7 @@ extern int i915_irq_emit(struct drm_device *dev, void *data,
extern
int
i915_irq_wait
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
void
i915_user_irq_get
(
struct
drm_device
*
dev
);
void
i915_trace_irq_get
(
struct
drm_device
*
dev
,
u32
seqno
);
void
i915_user_irq_put
(
struct
drm_device
*
dev
);
extern
void
i915_enable_interrupt
(
struct
drm_device
*
dev
);
...
...
drivers/gpu/drm/i915/i915_gem.c
View file @
8d23adf7
...
...
@@ -1770,7 +1770,7 @@ i915_gem_retire_requests(struct drm_device *dev)
drm_i915_private_t
*
dev_priv
=
dev
->
dev_private
;
uint32_t
seqno
;
if
(
!
dev_priv
->
hw_status_page
)
if
(
!
dev_priv
->
hw_status_page
||
list_empty
(
&
dev_priv
->
mm
.
request_list
)
)
return
;
seqno
=
i915_get_gem_seqno
(
dev
);
...
...
@@ -1794,6 +1794,12 @@ i915_gem_retire_requests(struct drm_device *dev)
}
else
break
;
}
if
(
unlikely
(
dev_priv
->
trace_irq_seqno
&&
i915_seqno_passed
(
dev_priv
->
trace_irq_seqno
,
seqno
)))
{
i915_user_irq_put
(
dev
);
dev_priv
->
trace_irq_seqno
=
0
;
}
}
void
...
...
@@ -3352,7 +3358,7 @@ i915_dispatch_gem_execbuffer(struct drm_device *dev,
exec_start
=
(
uint32_t
)
exec_offset
+
exec
->
batch_start_offset
;
exec_len
=
(
uint32_t
)
exec
->
batch_len
;
trace_i915_gem_request_submit
(
dev
,
dev_priv
->
mm
.
next_gem_seqno
);
trace_i915_gem_request_submit
(
dev
,
dev_priv
->
mm
.
next_gem_seqno
+
1
);
count
=
nbox
?
nbox
:
1
;
...
...
drivers/gpu/drm/i915/i915_irq.c
View file @
8d23adf7
...
...
@@ -725,6 +725,16 @@ void i915_user_irq_put(struct drm_device *dev)
spin_unlock_irqrestore
(
&
dev_priv
->
user_irq_lock
,
irqflags
);
}
void
i915_trace_irq_get
(
struct
drm_device
*
dev
,
u32
seqno
)
{
drm_i915_private_t
*
dev_priv
=
(
drm_i915_private_t
*
)
dev
->
dev_private
;
if
(
dev_priv
->
trace_irq_seqno
==
0
)
i915_user_irq_get
(
dev
);
dev_priv
->
trace_irq_seqno
=
seqno
;
}
static
int
i915_wait_irq
(
struct
drm_device
*
dev
,
int
irq_nr
)
{
drm_i915_private_t
*
dev_priv
=
(
drm_i915_private_t
*
)
dev
->
dev_private
;
...
...
drivers/gpu/drm/i915/i915_trace.h
View file @
8d23adf7
...
...
@@ -158,16 +158,17 @@ TRACE_EVENT(i915_gem_request_submit,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
i915_trace_irq_get
(
dev
,
seqno
);
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_flush
,
...
...
@@ -178,20 +179,20 @@ TRACE_EVENT(i915_gem_request_flush,
TP_ARGS
(
dev
,
seqno
,
flush_domains
,
invalidate_domains
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
__field
(
u32
,
flush_domains
)
__field
(
u32
,
invalidate_domains
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
__entry
->
flush_domains
=
flush_domains
;
__entry
->
invalidate_domains
=
invalidate_domains
;
),
TP_printk
(
"dev=%
p
, seqno=%u, flush=%04x, invalidate=%04x"
,
TP_printk
(
"dev=%
u
, seqno=%u, flush=%04x, invalidate=%04x"
,
__entry
->
dev
,
__entry
->
seqno
,
__entry
->
flush_domains
,
__entry
->
invalidate_domains
)
);
...
...
@@ -204,16 +205,16 @@ TRACE_EVENT(i915_gem_request_complete,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_retire
,
...
...
@@ -223,16 +224,16 @@ TRACE_EVENT(i915_gem_request_retire,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_wait_begin
,
...
...
@@ -242,16 +243,16 @@ TRACE_EVENT(i915_gem_request_wait_begin,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_gem_request_wait_end
,
...
...
@@ -261,16 +262,16 @@ TRACE_EVENT(i915_gem_request_wait_end,
TP_ARGS
(
dev
,
seqno
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
__field
(
u32
,
seqno
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
__entry
->
seqno
=
seqno
;
),
TP_printk
(
"dev=%
p
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
TP_printk
(
"dev=%
u
, seqno=%u"
,
__entry
->
dev
,
__entry
->
seqno
)
);
TRACE_EVENT
(
i915_ring_wait_begin
,
...
...
@@ -280,14 +281,14 @@ TRACE_EVENT(i915_ring_wait_begin,
TP_ARGS
(
dev
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
),
TP_printk
(
"dev=%
p
"
,
__entry
->
dev
)
TP_printk
(
"dev=%
u
"
,
__entry
->
dev
)
);
TRACE_EVENT
(
i915_ring_wait_end
,
...
...
@@ -297,14 +298,14 @@ TRACE_EVENT(i915_ring_wait_end,
TP_ARGS
(
dev
),
TP_STRUCT__entry
(
__field
(
struct
drm_device
*
,
dev
)
__field
(
u32
,
dev
)
),
TP_fast_assign
(
__entry
->
dev
=
dev
;
__entry
->
dev
=
dev
->
primary
->
index
;
),
TP_printk
(
"dev=%
p
"
,
__entry
->
dev
)
TP_printk
(
"dev=%
u
"
,
__entry
->
dev
)
);
#endif
/* _I915_TRACE_H_ */
...
...
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