Merge "msm: mdss: Fix race condition during mdp dump"
This commit is contained in:
commit
7aaa3c344e
1 changed files with 10 additions and 5 deletions
|
@ -1863,12 +1863,14 @@ static void __print_buf(struct seq_file *s, struct mdss_mdp_data *buf,
|
||||||
seq_puts(s, "\n");
|
seq_puts(s, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __dump_pipe(struct seq_file *s, struct mdss_mdp_pipe *pipe)
|
static void __dump_pipe(struct seq_file *s, struct mdss_mdp_pipe *pipe,
|
||||||
|
struct msm_fb_data_type *mfd)
|
||||||
{
|
{
|
||||||
struct mdss_mdp_data *buf;
|
struct mdss_mdp_data *buf;
|
||||||
int format;
|
int format;
|
||||||
int smps[4];
|
int smps[4];
|
||||||
int i;
|
int i;
|
||||||
|
struct mdss_overlay_private *mdp5_data = mfd_to_mdp5_data(mfd);
|
||||||
|
|
||||||
seq_printf(s, "\nSSPP #%d type=%s ndx=%x flags=0x%16llx play_cnt=%u xin_id=%d\n",
|
seq_printf(s, "\nSSPP #%d type=%s ndx=%x flags=0x%16llx play_cnt=%u xin_id=%d\n",
|
||||||
pipe->num, mdss_mdp_pipetype2str(pipe->type),
|
pipe->num, mdss_mdp_pipetype2str(pipe->type),
|
||||||
|
@ -1923,11 +1925,14 @@ static void __dump_pipe(struct seq_file *s, struct mdss_mdp_pipe *pipe)
|
||||||
|
|
||||||
seq_puts(s, "Data:\n");
|
seq_puts(s, "Data:\n");
|
||||||
|
|
||||||
|
mutex_lock(&mdp5_data->list_lock);
|
||||||
list_for_each_entry(buf, &pipe->buf_queue, pipe_list)
|
list_for_each_entry(buf, &pipe->buf_queue, pipe_list)
|
||||||
__print_buf(s, buf, false);
|
__print_buf(s, buf, false);
|
||||||
|
mutex_unlock(&mdp5_data->list_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __dump_mixer(struct seq_file *s, struct mdss_mdp_mixer *mixer)
|
static void __dump_mixer(struct seq_file *s, struct mdss_mdp_mixer *mixer,
|
||||||
|
struct msm_fb_data_type *mfd)
|
||||||
{
|
{
|
||||||
struct mdss_mdp_pipe *pipe;
|
struct mdss_mdp_pipe *pipe;
|
||||||
int i, cnt = 0;
|
int i, cnt = 0;
|
||||||
|
@ -1944,7 +1949,7 @@ static void __dump_mixer(struct seq_file *s, struct mdss_mdp_mixer *mixer)
|
||||||
for (i = 0; i < ARRAY_SIZE(mixer->stage_pipe); i++) {
|
for (i = 0; i < ARRAY_SIZE(mixer->stage_pipe); i++) {
|
||||||
pipe = mixer->stage_pipe[i];
|
pipe = mixer->stage_pipe[i];
|
||||||
if (pipe) {
|
if (pipe) {
|
||||||
__dump_pipe(s, pipe);
|
__dump_pipe(s, pipe, mfd);
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2019,8 +2024,8 @@ static void __dump_ctl(struct seq_file *s, struct mdss_mdp_ctl *ctl)
|
||||||
seq_printf(s, "Play Count=%u Underrun Count=%u\n",
|
seq_printf(s, "Play Count=%u Underrun Count=%u\n",
|
||||||
ctl->play_cnt, ctl->underrun_cnt);
|
ctl->play_cnt, ctl->underrun_cnt);
|
||||||
|
|
||||||
__dump_mixer(s, ctl->mixer_left);
|
__dump_mixer(s, ctl->mixer_left, ctl->mfd);
|
||||||
__dump_mixer(s, ctl->mixer_right);
|
__dump_mixer(s, ctl->mixer_right, ctl->mfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __dump_mdp(struct seq_file *s, struct mdss_data_type *mdata)
|
static int __dump_mdp(struct seq_file *s, struct mdss_data_type *mdata)
|
||||||
|
|
Loading…
Add table
Reference in a new issue