Loading drivers/video/msm/mdss/mdss_mdp.h +11 −1 Original line number Diff line number Diff line Loading @@ -428,7 +428,6 @@ enum mdss_screen_state { MDSS_SCREEN_FORCE_BLANK, }; #define is_vig_pipe(_pipe_id_) ((_pipe_id_) <= MDSS_MDP_SSPP_VIG2) static inline void mdss_mdp_ctl_write(struct mdss_mdp_ctl *ctl, u32 reg, u32 val) { Loading @@ -440,6 +439,17 @@ static inline u32 mdss_mdp_ctl_read(struct mdss_mdp_ctl *ctl, u32 reg) return readl_relaxed(ctl->base + reg); } static inline void mdp_mixer_write(struct mdss_mdp_mixer *mixer, u32 reg, u32 val) { writel_relaxed(val, mixer->base + reg); } static inline u32 mdp_mixer_read(struct mdss_mdp_mixer *mixer, u32 reg) { return readl_relaxed(mixer->base + reg); } static inline void mdss_mdp_pingpong_write(struct mdss_mdp_mixer *mixer, u32 reg, u32 val) { Loading drivers/video/msm/mdss/mdss_mdp_ctl.c +2 −9 Original line number Diff line number Diff line Loading @@ -60,12 +60,6 @@ static DEFINE_MUTEX(mdss_mdp_ctl_lock); static int mdss_mdp_mixer_free(struct mdss_mdp_mixer *mixer); static inline int __mdss_mdp_ctl_get_mixer_off(struct mdss_mdp_mixer *mixer); static inline void mdp_mixer_write(struct mdss_mdp_mixer *mixer, u32 reg, u32 val) { writel_relaxed(val, mixer->base + reg); } static inline u32 mdss_mdp_get_pclk_rate(struct mdss_mdp_ctl *ctl) { struct mdss_panel_info *pinfo = &ctl->panel_data->panel_info; Loading Loading @@ -1163,13 +1157,12 @@ int mdss_mdp_ctl_start(struct mdss_mdp_ctl *ctl) mdss_mdp_ctl_split_display_enable(1, ctl, sctl); } else if (ctl->mixer_right) { struct mdss_mdp_mixer *mixer = ctl->mixer_right; u32 out, off; u32 out; mdss_mdp_pp_resume(ctl, mixer->num); mixer->params_changed++; out = (mixer->height << 16) | mixer->width; off = MDSS_MDP_REG_LM_OFFSET(mixer->num); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_OUT_SIZE, out); mdp_mixer_write(mixer, MDSS_MDP_REG_LM_OUT_SIZE, out); mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_PACK_3D, 0); } } Loading drivers/video/msm/mdss/mdss_mdp_hwio.h +0 −2 Original line number Diff line number Diff line Loading @@ -280,8 +280,6 @@ enum mdss_mdp_stage_index { MDSS_MDP_MAX_STAGE }; #define MDSS_MDP_REG_LM_OFFSET(lm) (0x03200 + ((lm) * 0x400)) #define MDSS_MDP_REG_LM_OP_MODE 0x000 #define MDSS_MDP_REG_LM_OUT_SIZE 0x004 #define MDSS_MDP_REG_LM_BORDER_COLOR_0 0x008 Loading drivers/video/msm/mdss/mdss_mdp_overlay.c +14 −15 Original line number Diff line number Diff line Loading @@ -1850,7 +1850,7 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, struct mdss_mdp_mixer *mixer; struct fb_image *img = &cursor->image; u32 blendcfg; int off, ret = 0; int ret = 0; if (!mfd->cursor_buf && (cursor->set & FB_CUR_SETIMAGE)) { mfd->cursor_buf = dma_alloc_coherent(NULL, MDSS_MDP_CURSOR_SIZE, Loading @@ -1876,7 +1876,6 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, } mixer = mdss_mdp_mixer_get(mdp5_data->ctl, MDSS_MDP_MIXER_MUX_DEFAULT); off = MDSS_MDP_REG_LM_OFFSET(mixer->num); if ((img->width > MDSS_MDP_CURSOR_WIDTH) || (img->height > MDSS_MDP_CURSOR_HEIGHT) || Loading @@ -1887,10 +1886,10 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, cursor->set); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); blendcfg = MDSS_MDP_REG_READ(off + MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG); blendcfg = mdp_mixer_read(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG); if (cursor->set & FB_CUR_SETPOS) MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_START_XY, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_START_XY, (img->dy << 16) | img->dx); if (cursor->set & FB_CUR_SETIMAGE) { Loading Loading @@ -1928,37 +1927,37 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, calpha_en = 0x2; /* argb */ size = (img->height << 16) | img->width; MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_IMG_SIZE, size); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_SIZE, size); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_STRIDE, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_IMG_SIZE, size); mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_SIZE, size); mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_STRIDE, img->width * 4); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_BASE_ADDR, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BASE_ADDR, cursor_addr); wmb(); blendcfg &= ~0x1; blendcfg |= (transp_en << 3) | (calpha_en << 1); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, blendcfg); if (calpha_en) MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_PARAM, alpha); if (transp_en) { MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_LOW0, ((img->bg_color & 0xff00) << 8) | (img->bg_color & 0xff)); MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_LOW1, ((img->bg_color & 0xff0000) >> 16)); MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_HIGH0, ((img->bg_color & 0xff00) << 8) | (img->bg_color & 0xff)); MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_HIGH1, ((img->bg_color & 0xff0000) >> 16)); } Loading @@ -1973,7 +1972,7 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, blendcfg &= ~0x1; } MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, blendcfg); mixer->cursor_enabled = cursor->enable; Loading Loading
drivers/video/msm/mdss/mdss_mdp.h +11 −1 Original line number Diff line number Diff line Loading @@ -428,7 +428,6 @@ enum mdss_screen_state { MDSS_SCREEN_FORCE_BLANK, }; #define is_vig_pipe(_pipe_id_) ((_pipe_id_) <= MDSS_MDP_SSPP_VIG2) static inline void mdss_mdp_ctl_write(struct mdss_mdp_ctl *ctl, u32 reg, u32 val) { Loading @@ -440,6 +439,17 @@ static inline u32 mdss_mdp_ctl_read(struct mdss_mdp_ctl *ctl, u32 reg) return readl_relaxed(ctl->base + reg); } static inline void mdp_mixer_write(struct mdss_mdp_mixer *mixer, u32 reg, u32 val) { writel_relaxed(val, mixer->base + reg); } static inline u32 mdp_mixer_read(struct mdss_mdp_mixer *mixer, u32 reg) { return readl_relaxed(mixer->base + reg); } static inline void mdss_mdp_pingpong_write(struct mdss_mdp_mixer *mixer, u32 reg, u32 val) { Loading
drivers/video/msm/mdss/mdss_mdp_ctl.c +2 −9 Original line number Diff line number Diff line Loading @@ -60,12 +60,6 @@ static DEFINE_MUTEX(mdss_mdp_ctl_lock); static int mdss_mdp_mixer_free(struct mdss_mdp_mixer *mixer); static inline int __mdss_mdp_ctl_get_mixer_off(struct mdss_mdp_mixer *mixer); static inline void mdp_mixer_write(struct mdss_mdp_mixer *mixer, u32 reg, u32 val) { writel_relaxed(val, mixer->base + reg); } static inline u32 mdss_mdp_get_pclk_rate(struct mdss_mdp_ctl *ctl) { struct mdss_panel_info *pinfo = &ctl->panel_data->panel_info; Loading Loading @@ -1163,13 +1157,12 @@ int mdss_mdp_ctl_start(struct mdss_mdp_ctl *ctl) mdss_mdp_ctl_split_display_enable(1, ctl, sctl); } else if (ctl->mixer_right) { struct mdss_mdp_mixer *mixer = ctl->mixer_right; u32 out, off; u32 out; mdss_mdp_pp_resume(ctl, mixer->num); mixer->params_changed++; out = (mixer->height << 16) | mixer->width; off = MDSS_MDP_REG_LM_OFFSET(mixer->num); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_OUT_SIZE, out); mdp_mixer_write(mixer, MDSS_MDP_REG_LM_OUT_SIZE, out); mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_PACK_3D, 0); } } Loading
drivers/video/msm/mdss/mdss_mdp_hwio.h +0 −2 Original line number Diff line number Diff line Loading @@ -280,8 +280,6 @@ enum mdss_mdp_stage_index { MDSS_MDP_MAX_STAGE }; #define MDSS_MDP_REG_LM_OFFSET(lm) (0x03200 + ((lm) * 0x400)) #define MDSS_MDP_REG_LM_OP_MODE 0x000 #define MDSS_MDP_REG_LM_OUT_SIZE 0x004 #define MDSS_MDP_REG_LM_BORDER_COLOR_0 0x008 Loading
drivers/video/msm/mdss/mdss_mdp_overlay.c +14 −15 Original line number Diff line number Diff line Loading @@ -1850,7 +1850,7 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, struct mdss_mdp_mixer *mixer; struct fb_image *img = &cursor->image; u32 blendcfg; int off, ret = 0; int ret = 0; if (!mfd->cursor_buf && (cursor->set & FB_CUR_SETIMAGE)) { mfd->cursor_buf = dma_alloc_coherent(NULL, MDSS_MDP_CURSOR_SIZE, Loading @@ -1876,7 +1876,6 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, } mixer = mdss_mdp_mixer_get(mdp5_data->ctl, MDSS_MDP_MIXER_MUX_DEFAULT); off = MDSS_MDP_REG_LM_OFFSET(mixer->num); if ((img->width > MDSS_MDP_CURSOR_WIDTH) || (img->height > MDSS_MDP_CURSOR_HEIGHT) || Loading @@ -1887,10 +1886,10 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, cursor->set); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); blendcfg = MDSS_MDP_REG_READ(off + MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG); blendcfg = mdp_mixer_read(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG); if (cursor->set & FB_CUR_SETPOS) MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_START_XY, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_START_XY, (img->dy << 16) | img->dx); if (cursor->set & FB_CUR_SETIMAGE) { Loading Loading @@ -1928,37 +1927,37 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, calpha_en = 0x2; /* argb */ size = (img->height << 16) | img->width; MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_IMG_SIZE, size); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_SIZE, size); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_STRIDE, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_IMG_SIZE, size); mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_SIZE, size); mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_STRIDE, img->width * 4); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_BASE_ADDR, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BASE_ADDR, cursor_addr); wmb(); blendcfg &= ~0x1; blendcfg |= (transp_en << 3) | (calpha_en << 1); MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, blendcfg); if (calpha_en) MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_PARAM, alpha); if (transp_en) { MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_LOW0, ((img->bg_color & 0xff00) << 8) | (img->bg_color & 0xff)); MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_LOW1, ((img->bg_color & 0xff0000) >> 16)); MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_HIGH0, ((img->bg_color & 0xff00) << 8) | (img->bg_color & 0xff)); MDSS_MDP_REG_WRITE(off + mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_TRANSP_HIGH1, ((img->bg_color & 0xff0000) >> 16)); } Loading @@ -1973,7 +1972,7 @@ static int mdss_mdp_hw_cursor_update(struct msm_fb_data_type *mfd, blendcfg &= ~0x1; } MDSS_MDP_REG_WRITE(off + MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, mdp_mixer_write(mixer, MDSS_MDP_REG_LM_CURSOR_BLEND_CONFIG, blendcfg); mixer->cursor_enabled = cursor->enable; Loading