/drivers/gpu/drm/msm/mdp/mdp5/ |
D | mdp5_kms.c | 32 struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(kms)); in mdp5_hw_init() local 33 struct device *dev = &mdp5_kms->pdev->dev; in mdp5_hw_init() 62 spin_lock_irqsave(&mdp5_kms->resource_lock, flags); in mdp5_hw_init() 63 mdp5_write(mdp5_kms, REG_MDP5_DISP_INTF_SEL, 0); in mdp5_hw_init() 64 spin_unlock_irqrestore(&mdp5_kms->resource_lock, flags); in mdp5_hw_init() 66 mdp5_ctlm_hw_reset(mdp5_kms->ctlm); in mdp5_hw_init() 76 struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); in mdp5_get_state() local 84 ret = drm_modeset_lock(&mdp5_kms->state_lock, s->acquire_ctx); in mdp5_get_state() 88 new_state = kmalloc(sizeof(*mdp5_kms->state), GFP_KERNEL); in mdp5_get_state() 93 new_state->hwpipe = mdp5_kms->state->hwpipe; in mdp5_get_state() [all …]
|
D | mdp5_irq.c | 35 struct mdp5_kms *mdp5_kms = container_of(irq, struct mdp5_kms, error_handler); in mdp5_irq_error_handler() local 42 struct drm_printer p = drm_info_printer(mdp5_kms->dev->dev); in mdp5_irq_error_handler() 43 drm_state_dump(mdp5_kms->dev, &p); in mdp5_irq_error_handler() 44 if (mdp5_kms->smp) in mdp5_irq_error_handler() 45 mdp5_smp_dump(mdp5_kms->smp, &p); in mdp5_irq_error_handler() 51 struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(kms)); in mdp5_irq_preinstall() local 52 struct device *dev = &mdp5_kms->pdev->dev; in mdp5_irq_preinstall() 55 mdp5_write(mdp5_kms, REG_MDP5_INTR_CLEAR, 0xffffffff); in mdp5_irq_preinstall() 56 mdp5_write(mdp5_kms, REG_MDP5_INTR_EN, 0x00000000); in mdp5_irq_preinstall() 63 struct mdp5_kms *mdp5_kms = to_mdp5_kms(mdp_kms); in mdp5_irq_postinstall() local [all …]
|
D | mdp5_cmd_encoder.c | 19 static struct mdp5_kms *get_kms(struct drm_encoder *encoder) in get_kms() 50 struct mdp5_kms *mdp5_kms = get_kms(encoder); in pingpong_tearcheck_setup() local 57 if (IS_ERR_OR_NULL(mdp5_kms->vsync_clk)) { in pingpong_tearcheck_setup() 69 vsync_clk_speed = clk_round_rate(mdp5_kms->vsync_clk, VSYNC_CLK_RATE); in pingpong_tearcheck_setup() 81 mdp5_write(mdp5_kms, REG_MDP5_PP_SYNC_CONFIG_VSYNC(pp_id), cfg); in pingpong_tearcheck_setup() 82 mdp5_write(mdp5_kms, in pingpong_tearcheck_setup() 84 mdp5_write(mdp5_kms, in pingpong_tearcheck_setup() 86 mdp5_write(mdp5_kms, REG_MDP5_PP_RD_PTR_IRQ(pp_id), mode->vdisplay + 1); in pingpong_tearcheck_setup() 87 mdp5_write(mdp5_kms, REG_MDP5_PP_START_POS(pp_id), mode->vdisplay); in pingpong_tearcheck_setup() 88 mdp5_write(mdp5_kms, REG_MDP5_PP_SYNC_THRESH(pp_id), in pingpong_tearcheck_setup() [all …]
|
D | mdp5_encoder.c | 24 static struct mdp5_kms *get_kms(struct drm_encoder *encoder) in get_kms() 109 struct mdp5_kms *mdp5_kms = get_kms(encoder); in mdp5_vid_encoder_mode_set() local 185 mdp5_write(mdp5_kms, REG_MDP5_INTF_HSYNC_CTL(intf), in mdp5_vid_encoder_mode_set() 188 mdp5_write(mdp5_kms, REG_MDP5_INTF_VSYNC_PERIOD_F0(intf), vsync_period); in mdp5_vid_encoder_mode_set() 189 mdp5_write(mdp5_kms, REG_MDP5_INTF_VSYNC_LEN_F0(intf), vsync_len); in mdp5_vid_encoder_mode_set() 190 mdp5_write(mdp5_kms, REG_MDP5_INTF_DISPLAY_HCTL(intf), in mdp5_vid_encoder_mode_set() 193 mdp5_write(mdp5_kms, REG_MDP5_INTF_DISPLAY_VSTART_F0(intf), display_v_start); in mdp5_vid_encoder_mode_set() 194 mdp5_write(mdp5_kms, REG_MDP5_INTF_DISPLAY_VEND_F0(intf), display_v_end); in mdp5_vid_encoder_mode_set() 195 mdp5_write(mdp5_kms, REG_MDP5_INTF_BORDER_COLOR(intf), 0); in mdp5_vid_encoder_mode_set() 196 mdp5_write(mdp5_kms, REG_MDP5_INTF_UNDERFLOW_COLOR(intf), 0xff); in mdp5_vid_encoder_mode_set() [all …]
|
D | mdp5_plane.c | 43 static struct mdp5_kms *get_kms(struct drm_plane *plane) in get_kms() 178 struct mdp5_kms *mdp5_kms = get_kms(state->plane); in mdp5_plane_atomic_print_state() local 182 if (mdp5_kms->caps & MDP_CAP_SRC_SPLIT) in mdp5_plane_atomic_print_state() 272 struct mdp5_kms *mdp5_kms = get_kms(plane); in mdp5_plane_prepare_fb() local 273 struct msm_kms *kms = &mdp5_kms->base.base; in mdp5_plane_prepare_fb() 286 struct mdp5_kms *mdp5_kms = get_kms(plane); in mdp5_plane_cleanup_fb() local 287 struct msm_kms *kms = &mdp5_kms->base.base; in mdp5_plane_cleanup_fb() 359 struct mdp5_kms *mdp5_kms = get_kms(plane); in mdp5_plane_atomic_check_with_state() local 397 if (mdp5_kms->smp) { in mdp5_plane_atomic_check_with_state() 401 blkcfg = mdp5_smp_calculate(mdp5_kms->smp, format, in mdp5_plane_atomic_check_with_state() [all …]
|
D | mdp5_smp.c | 41 struct mdp5_kms *get_kms(struct mdp5_smp *smp) in get_kms() 129 struct mdp5_kms *mdp5_kms = get_kms(smp); in mdp5_smp_calculate() local 130 int rev = mdp5_cfg_get_hw_rev(mdp5_kms->cfg); in mdp5_smp_calculate() 177 struct mdp5_kms *mdp5_kms = get_kms(smp); in mdp5_smp_assign() local 178 struct drm_device *dev = mdp5_kms->dev; in mdp5_smp_assign() 267 struct mdp5_kms *mdp5_kms = get_kms(smp); in write_smp_alloc_regs() local 273 mdp5_write(mdp5_kms, REG_MDP5_SMP_ALLOC_W_REG(i), in write_smp_alloc_regs() 275 mdp5_write(mdp5_kms, REG_MDP5_SMP_ALLOC_R_REG(i), in write_smp_alloc_regs() 282 struct mdp5_kms *mdp5_kms = get_kms(smp); in write_smp_fifo_regs() local 285 for (i = 0; i < mdp5_kms->num_hwpipes; i++) { in write_smp_fifo_regs() [all …]
|
D | mdp5_crtc.c | 70 static struct mdp5_kms *get_kms(struct drm_crtc *crtc) in get_kms() 162 struct mdp5_kms *mdp5_kms = get_kms(&mdp5_crtc->base); in unref_cursor_worker() local 163 struct msm_kms *kms = &mdp5_kms->base.base; in unref_cursor_worker() 212 struct mdp5_kms *mdp5_kms = get_kms(crtc); in blend_setup() local 232 hw_cfg = mdp5_cfg_get_hw_config(mdp5_kms->cfg); in blend_setup() 325 mdp5_write(mdp5_kms, REG_MDP5_LM_BLEND_OP_MODE(lm, in blend_setup() 327 mdp5_write(mdp5_kms, REG_MDP5_LM_BLEND_FG_ALPHA(lm, in blend_setup() 329 mdp5_write(mdp5_kms, REG_MDP5_LM_BLEND_BG_ALPHA(lm, in blend_setup() 332 mdp5_write(mdp5_kms, REG_MDP5_LM_BLEND_OP_MODE(r_lm, in blend_setup() 334 mdp5_write(mdp5_kms, REG_MDP5_LM_BLEND_FG_ALPHA(r_lm, in blend_setup() [all …]
|
D | mdp5_pipe.c | 24 struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); in mdp5_pipe_assign() local 35 old_state = &mdp5_kms->state->hwpipe; in mdp5_pipe_assign() 38 for (i = 0; i < mdp5_kms->num_hwpipes; i++) { in mdp5_pipe_assign() 39 struct mdp5_hw_pipe *cur = mdp5_kms->hwpipes[i]; in mdp5_pipe_assign() 75 if (mdp5_kms->smp) { in mdp5_pipe_assign() 79 ret = mdp5_smp_assign(mdp5_kms->smp, &state->smp, in mdp5_pipe_assign() 97 struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); in mdp5_pipe_release() local 110 if (mdp5_kms->smp) { in mdp5_pipe_release() 112 mdp5_smp_release(mdp5_kms->smp, &state->smp, hwpipe->pipe); in mdp5_pipe_release()
|
D | mdp5_mixer.c | 30 static int get_right_pair_idx(struct mdp5_kms *mdp5_kms, int lm) in get_right_pair_idx() argument 39 for (i = 0; i < mdp5_kms->num_hwmixers; i++) { in get_right_pair_idx() 40 struct mdp5_hw_mixer *mixer = mdp5_kms->hwmixers[i]; in get_right_pair_idx() 54 struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); in mdp5_mixer_assign() local 64 for (i = 0; i < mdp5_kms->num_hwmixers; i++) { in mdp5_mixer_assign() 65 struct mdp5_hw_mixer *cur = mdp5_kms->hwmixers[i]; in mdp5_mixer_assign() 85 pair_idx = get_right_pair_idx(mdp5_kms, cur->lm); in mdp5_mixer_assign() 92 *r_mixer = mdp5_kms->hwmixers[pair_idx]; in mdp5_mixer_assign()
|
D | mdp5_kms.h | 33 struct mdp5_kms { struct 82 #define to_mdp5_kms(x) container_of(x, struct mdp5_kms, base) argument 170 static inline void mdp5_write(struct mdp5_kms *mdp5_kms, u32 reg, u32 data) in mdp5_write() argument 172 WARN_ON(mdp5_kms->enable_count <= 0); in mdp5_write() 173 msm_writel(data, mdp5_kms->mmio + reg); in mdp5_write() 176 static inline u32 mdp5_read(struct mdp5_kms *mdp5_kms, u32 reg) in mdp5_read() argument 178 WARN_ON(mdp5_kms->enable_count <= 0); in mdp5_read() 179 return msm_readl(mdp5_kms->mmio + reg); in mdp5_read() 270 int mdp5_irq_domain_init(struct mdp5_kms *mdp5_kms); 271 void mdp5_irq_domain_fini(struct mdp5_kms *mdp5_kms);
|
D | mdp5_ctl.c | 81 struct mdp5_kms *get_kms(struct mdp5_ctl_manager *ctl_mgr) in get_kms() 91 struct mdp5_kms *mdp5_kms = get_kms(ctl->ctlm); in ctl_write() local 94 mdp5_write(mdp5_kms, reg, data); in ctl_write() 100 struct mdp5_kms *mdp5_kms = get_kms(ctl->ctlm); in ctl_read() local 103 return mdp5_read(mdp5_kms, reg); in ctl_read() 106 static void set_display_intf(struct mdp5_kms *mdp5_kms, in set_display_intf() argument 112 spin_lock_irqsave(&mdp5_kms->resource_lock, flags); in set_display_intf() 113 intf_sel = mdp5_read(mdp5_kms, REG_MDP5_DISP_INTF_SEL); in set_display_intf() 137 mdp5_write(mdp5_kms, REG_MDP5_DISP_INTF_SEL, intf_sel); in set_display_intf() 138 spin_unlock_irqrestore(&mdp5_kms->resource_lock, flags); in set_display_intf() [all …]
|
D | mdp5_smp.h | 71 struct mdp5_kms; 80 struct mdp5_smp *mdp5_smp_init(struct mdp5_kms *mdp5_kms,
|
D | mdp5_cfg.h | 118 struct mdp5_kms; 129 struct mdp5_cfg_handler *mdp5_cfg_init(struct mdp5_kms *mdp5_kms,
|
D | mdp5_cfg.c | 587 struct mdp5_cfg_handler *mdp5_cfg_init(struct mdp5_kms *mdp5_kms, in mdp5_cfg_init() argument 590 struct drm_device *dev = mdp5_kms->dev; in mdp5_cfg_init()
|
/drivers/gpu/drm/msm/ |
D | Makefile | 42 mdp/mdp5/mdp5_kms.o \
|