aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Viau <sviau@codeaurora.org>2015-09-15 08:41:44 -0400
committerRob Clark <robdclark@gmail.com>2015-10-22 15:39:54 -0400
commit60fb49ca52ec304a937bcee14ae6acbe1e75562b (patch)
tree2c4a81ba3deea725f172154122c42ae980c853cd
parente01b1bfd88f9c5ec32b471a5a696a79f45740e63 (diff)
drm/msm/mdp5: remove the cfg pointer from SMP struct
We want to make sure we control all the information being passed down to SMP block. Having access to the cfg pointer here may create bad things in the future. Signed-off-by: Stephane Viau <sviau@codeaurora.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h2
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c8
2 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h
index efb918d9f68b..a6facafed3bb 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h
@@ -61,7 +61,7 @@ struct mdp5_smp_block {
61 int mmb_size; /* MMB: size in bytes */ 61 int mmb_size; /* MMB: size in bytes */
62 uint32_t clients[MAX_CLIENTS]; /* SMP port allocation /pipe */ 62 uint32_t clients[MAX_CLIENTS]; /* SMP port allocation /pipe */
63 mdp5_smp_state_t reserved_state;/* SMP MMBs statically allocated */ 63 mdp5_smp_state_t reserved_state;/* SMP MMBs statically allocated */
64 int reserved[MAX_CLIENTS]; /* # of MMBs allocated per client */ 64 uint8_t reserved[MAX_CLIENTS]; /* # of MMBs allocated per client */
65}; 65};
66 66
67#define MDP5_INTF_NUM_MAX 5 67#define MDP5_INTF_NUM_MAX 5
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c
index 563cca972dcb..6f425c25d9fe 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c
@@ -90,7 +90,7 @@
90struct mdp5_smp { 90struct mdp5_smp {
91 struct drm_device *dev; 91 struct drm_device *dev;
92 92
93 const struct mdp5_smp_block *cfg; 93 uint8_t reserved[MAX_CLIENTS]; /* fixed MMBs allocation per client */
94 94
95 int blk_cnt; 95 int blk_cnt;
96 int blk_size; 96 int blk_size;
@@ -141,10 +141,10 @@ static int smp_request_block(struct mdp5_smp *smp,
141 struct mdp5_kms *mdp5_kms = get_kms(smp); 141 struct mdp5_kms *mdp5_kms = get_kms(smp);
142 struct mdp5_client_smp_state *ps = &smp->client_state[cid]; 142 struct mdp5_client_smp_state *ps = &smp->client_state[cid];
143 int i, ret, avail, cur_nblks, cnt = smp->blk_cnt; 143 int i, ret, avail, cur_nblks, cnt = smp->blk_cnt;
144 int reserved; 144 uint8_t reserved;
145 unsigned long flags; 145 unsigned long flags;
146 146
147 reserved = smp->cfg->reserved[cid]; 147 reserved = smp->reserved[cid];
148 148
149 spin_lock_irqsave(&smp->state_lock, flags); 149 spin_lock_irqsave(&smp->state_lock, flags);
150 150
@@ -405,12 +405,12 @@ struct mdp5_smp *mdp5_smp_init(struct drm_device *dev, const struct mdp5_smp_blo
405 } 405 }
406 406
407 smp->dev = dev; 407 smp->dev = dev;
408 smp->cfg = cfg;
409 smp->blk_cnt = cfg->mmb_count; 408 smp->blk_cnt = cfg->mmb_count;
410 smp->blk_size = cfg->mmb_size; 409 smp->blk_size = cfg->mmb_size;
411 410
412 /* statically tied MMBs cannot be re-allocated: */ 411 /* statically tied MMBs cannot be re-allocated: */
413 bitmap_copy(smp->state, cfg->reserved_state, smp->blk_cnt); 412 bitmap_copy(smp->state, cfg->reserved_state, smp->blk_cnt);
413 memcpy(smp->reserved, cfg->reserved, sizeof(smp->reserved));
414 spin_lock_init(&smp->state_lock); 414 spin_lock_init(&smp->state_lock);
415 415
416 return smp; 416 return smp;