Lines Matching +full:11 +full:mp
35 #define LAYER_V_FLIP (1 << 11)
72 struct malidp_plane *mp = to_malidp_plane(plane); in malidp_de_plane_destroy() local
75 kfree(mp); in malidp_de_plane_destroy()
270 static int malidp_se_check_scaling(struct malidp_plane *mp, in malidp_se_check_scaling() argument
299 mc->scaled_planes_mask &= ~(mp->layer->id); in malidp_se_check_scaling()
303 if (mp->layer->id & (DE_SMART | DE_GRAPHICS2)) in malidp_se_check_scaling()
306 mc->scaled_planes_mask |= mp->layer->id; in malidp_se_check_scaling()
311 static u32 malidp_get_pgsize_bitmap(struct malidp_plane *mp) in malidp_get_pgsize_bitmap() argument
317 iommu_get_domain_for_dev(mp->base.dev->dev); in malidp_get_pgsize_bitmap()
492 static void malidp_de_prefetch_settings(struct malidp_plane *mp, in malidp_de_prefetch_settings() argument
495 if (!mp->layer->mmu_ctrl_offset) in malidp_de_prefetch_settings()
499 ms->mmu_prefetch_pgsize = malidp_get_pgsize_bitmap(mp); in malidp_de_prefetch_settings()
507 struct malidp_plane *mp = to_malidp_plane(plane); in malidp_de_plane_check() local
520 ms->format = malidp_hw_get_format_id(&mp->hwdev->hw->map, in malidp_de_plane_check()
521 mp->layer->id, fb->format->format, in malidp_de_plane_check()
528 u8 alignment = malidp_hw_get_pitch_align(mp->hwdev, rotated); in malidp_de_plane_check()
549 if ((state->crtc_w > mp->hwdev->max_line_size) || in malidp_de_plane_check()
550 (state->crtc_h > mp->hwdev->max_line_size) || in malidp_de_plane_check()
551 (state->crtc_w < mp->hwdev->min_line_size) || in malidp_de_plane_check()
552 (state->crtc_h < mp->hwdev->min_line_size)) in malidp_de_plane_check()
561 !(mp->hwdev->hw->features & MALIDP_DEVICE_LV_HAS_3_STRIDES) && in malidp_de_plane_check()
565 ret = malidp_se_check_scaling(mp, state); in malidp_de_plane_check()
571 if (mp->layer->rot == ROTATE_NONE) in malidp_de_plane_check()
573 if ((mp->layer->rot == ROTATE_COMPRESSED) && !(fb->modifier)) in malidp_de_plane_check()
585 if (mp->layer->id == DE_SMART && fb->modifier) { in malidp_de_plane_check()
594 val = mp->hwdev->hw->rotmem_required(mp->hwdev, state->crtc_w, in malidp_de_plane_check()
610 malidp_de_prefetch_settings(mp, ms); in malidp_de_plane_check()
615 static void malidp_de_set_plane_pitches(struct malidp_plane *mp, in malidp_de_set_plane_pitches() argument
621 if (!mp->layer->stride_offset) in malidp_de_set_plane_pitches()
625 num_strides = (mp->hwdev->hw->features & in malidp_de_set_plane_pitches()
634 unsigned int block_h = drm_format_info_block_height(mp->base.state->fb->format, i); in malidp_de_set_plane_pitches()
636 malidp_hw_write(mp->hwdev, pitches[i] * block_h, in malidp_de_set_plane_pitches()
637 mp->layer->base + in malidp_de_set_plane_pitches()
638 mp->layer->stride_offset + i * 4); in malidp_de_set_plane_pitches()
696 static void malidp_de_set_mmu_control(struct malidp_plane *mp, in malidp_de_set_mmu_control() argument
702 if (!mp->layer->mmu_ctrl_offset) in malidp_de_set_mmu_control()
710 malidp_hw_write(mp->hwdev, mmu_ctrl, in malidp_de_set_mmu_control()
711 mp->layer->base + mp->layer->mmu_ctrl_offset); in malidp_de_set_mmu_control()
715 struct malidp_plane *mp, in malidp_set_plane_base_addr() argument
720 struct drm_plane *plane = &mp->base; in malidp_set_plane_base_addr()
723 ptr = mp->layer->ptr + (plane_index << 4); in malidp_set_plane_base_addr()
745 malidp_hw_write(mp->hwdev, lower_32_bits(paddr), ptr); in malidp_set_plane_base_addr()
746 malidp_hw_write(mp->hwdev, upper_32_bits(paddr), ptr + 4); in malidp_set_plane_base_addr()
751 struct malidp_plane *mp; in malidp_de_set_plane_afbc() local
755 mp = to_malidp_plane(plane); in malidp_de_set_plane_afbc()
758 if (!mp->layer->afbc_decoder_offset) in malidp_de_set_plane_afbc()
762 malidp_hw_write(mp->hwdev, 0, mp->layer->afbc_decoder_offset); in malidp_de_set_plane_afbc()
774 malidp_hw_write(mp->hwdev, val, in malidp_de_set_plane_afbc()
775 mp->layer->afbc_decoder_offset + MALIDP_AD_CROP_H); in malidp_de_set_plane_afbc()
779 malidp_hw_write(mp->hwdev, val, in malidp_de_set_plane_afbc()
780 mp->layer->afbc_decoder_offset + MALIDP_AD_CROP_V); in malidp_de_set_plane_afbc()
788 malidp_hw_write(mp->hwdev, val, mp->layer->afbc_decoder_offset); in malidp_de_set_plane_afbc()
794 struct malidp_plane *mp; in malidp_de_plane_update() local
803 mp = to_malidp_plane(plane); in malidp_de_plane_update()
821 val = malidp_hw_read(mp->hwdev, mp->layer->base); in malidp_de_plane_update()
823 malidp_hw_write(mp->hwdev, val, mp->layer->base); in malidp_de_plane_update()
826 malidp_set_plane_base_addr(fb, mp, i); in malidp_de_plane_update()
828 malidp_de_set_mmu_control(mp, ms); in malidp_de_plane_update()
830 malidp_de_set_plane_pitches(mp, ms->n_planes, in malidp_de_plane_update()
835 malidp_de_set_color_encoding(mp, plane->state->color_encoding, in malidp_de_plane_update()
838 malidp_hw_write(mp->hwdev, LAYER_H_VAL(src_w) | LAYER_V_VAL(src_h), in malidp_de_plane_update()
839 mp->layer->base + MALIDP_LAYER_SIZE); in malidp_de_plane_update()
841 malidp_hw_write(mp->hwdev, LAYER_H_VAL(dest_w) | LAYER_V_VAL(dest_h), in malidp_de_plane_update()
842 mp->layer->base + MALIDP_LAYER_COMP_SIZE); in malidp_de_plane_update()
844 malidp_hw_write(mp->hwdev, LAYER_H_VAL(state->crtc_x) | in malidp_de_plane_update()
846 mp->layer->base + MALIDP_LAYER_OFFSET); in malidp_de_plane_update()
848 if (mp->layer->id == DE_SMART) { in malidp_de_plane_update()
853 malidp_hw_write(mp->hwdev, 1, in malidp_de_plane_update()
854 mp->layer->base + MALIDP550_LS_ENABLE); in malidp_de_plane_update()
855 malidp_hw_write(mp->hwdev, in malidp_de_plane_update()
857 mp->layer->base + MALIDP550_LS_R1_IN_SIZE); in malidp_de_plane_update()
863 val = malidp_hw_read(mp->hwdev, mp->layer->base + MALIDP_LAYER_CONTROL); in malidp_de_plane_update()
898 m->scaler_config.plane_src_id == mp->layer->id) in malidp_de_plane_update()
905 malidp_hw_write(mp->hwdev, val, in malidp_de_plane_update()
906 mp->layer->base + MALIDP_LAYER_CONTROL); in malidp_de_plane_update()
912 struct malidp_plane *mp = to_malidp_plane(plane); in malidp_de_plane_disable() local
914 malidp_hw_clearbits(mp->hwdev, in malidp_de_plane_disable()
916 mp->layer->base + MALIDP_LAYER_CONTROL); in malidp_de_plane_disable()